Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org

# WordPress Coding Standards
# https://make.wordpress.org/core/handbook/coding-standards/

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab

[*.{yml,yaml}]
indent_style = space
indent_size = 2
7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Code Owners

## <https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners>

* @webdevstudios
* @thatmitchcanter
* @khleomix
46 changes: 46 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@webdevstudios.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
83 changes: 83 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Closes

<!--
REQUIRED. Please do not leave this blank. Use this format to link issue numbers:
[#WDS-123](https://webdevstudios.atlassian.net/browse/WDS-123)
-->

## Link to test

<!--
REQUIRED. Please do not leave this blank. Use this format to link to the testing environment:
[Develop](https://wds.wdslab.com/)
-->

## Description

<!--
REQUIRED. Please do not leave this blank.
Example:
1. [#WDS-123](https://webdevstudios.atlassian.net/browse/WDS-123) - This PR [adds/removes/fixes/replaces] the [feature/bug/etc].
2. Make sure to add the appropriate labels to this PR.
-->

## Related Tickets & Documents

<!--
Please use this format to link issue numbers: Fixes #WDS-123
-->

## Mobile & Desktop Screenshots/Recordings

<!--
REQUIRED. Please do not leave this blank.
For visual alterations, provide screenshots or recordings for both desktop and mobile. You can utilize Loom for this purpose: https://www.loom.com/screen-recorder
-->

## AI Assistance

- [ ] 🤖 This project was developed with the help of a LLM/AI such as Cursor, Gemini, etc.

## Added to documentation?

- [ ] 📜 README.md
- [ ] 📓 [ClickUp](https://documentationlink.here)
- [ ] 🙅 No documentation needed

## Added tests?

- [ ] 👍 Yes
- [ ] 🙅 No, because they aren't needed
- [ ] 🙋 No, because I need help

## Testing Instructions

<!--
Please include step-by-step instructions on how to test this PR.
Example:
1. Open a post or page.
2. Insert a heading block.
3. Verify that the heading block appears as expected.
-->

-----

## Reviewer's Testing Checklist

<!--
REQUIRED For reviewers to fill in.
-->

As a reviewer, please verify that the relevant testing criteria are fulfilled and confirmed before approving this Pull Request.

- [ ] **Visual Regression Testing:** Ensure that existing functionality is not negatively impacted by the changes.
- [ ] **Cross-Browser Compatibility:** Test on major browsers (Chrome, Firefox, Safari) to ensure compatibility.
- [ ] **Mobile Responsiveness:** Confirm that the changes are responsive and functional on various mobile devices.
- [ ] **Theme Compatibility:** Ensure that the changes do not adversely affect the site's theme and styling.
- [ ] **Linting:** Check that the code passes all linting checks (PHPCS, ESLint, SassLint). Check if PR passes code quality check.
- [ ] **Accessibility Testing:** Validate that the changes comply with accessibility standards. Run `npm run a11y`.
- [ ] **Security Best Practices:** Ensure that the code follows WordPress security best practices. Check if PR passes security check.
- [ ] **Documentation:** Ensure that any new features or changes are appropriately documented in the README.md or Confluence.
- [ ] **Post-Deployment Tasks:** Check if there are any tasks that need to be performed after deployment.

## [optional] Additional Reviewer Notes or Considerations?
90 changes: 90 additions & 0 deletions .github/workflows/assertions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Code Quality

on:
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
lint-css:
name: 'Lint: CSS'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install Node dependencies
run: npm ci
env:
CI: true

- name: Detect coding standard violations (stylelint)
run: npm run lint:css

lint-js:
name: 'Lint: JS'
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Check Node version
run: node -v

- name: Install Node dependencies
run: npm ci
env:
CI: true

- name: Detect coding standard violations (eslint)
run: npm run lint:js

lint-php:
name: 'Lint: PHP'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
coverage: none
tools: cs2pr

- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Configure Composer cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-

- name: Install Composer dependencies
run: composer install --prefer-dist --optimize-autoloader --no-progress --no-interaction

- name: Validate composer.json
run: composer --no-interaction validate --no-check-all

- name: Detect coding standard violations (PHPCS)
run: npm run lint:php
46 changes: 46 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Security

on:
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
security:
name: 'Security Check'
runs-on: ubuntu-latest

# Ensure the cron job runs only on the main repository, not forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'webdevstudios')

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Cache Composer dependencies
# Automatically uses Node.js 20 after March 2024
uses: actions/cache@v3
with:
path: ~/.composer/cache
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-

- name: Install PHP dependencies
run: composer install --no-progress --no-suggest --prefer-dist

- name: Run Security Check
uses: symfonycorp/security-checker-action@v5
with:
lock: ./composer.lock
format: ansi
disable-exit-code: true

- name: Post Security Check Summary
if: always()
run: |
echo "Security check completed. Review the output for any detected vulnerabilities."
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![WebDevStudios. Your Success is Our Mission.](https://webdevstudios.com/wp-content/uploads/2024/02/wds-banner.png)](https://webdevstudios.com/contact/)

# Bluesky Feed for WordPress®

Showcase your recent Bluesky posts on your WordPress® website in a variety of ways. Display your Bluesky feed using a widget, shortcode, preview the feed in the admin settings, with customizable themes and display styles.
Expand Down Expand Up @@ -84,5 +86,6 @@ See the [LICENSE](http://www.gnu.org/licenses/gpl-2.0.txt) file for details.

## Acknowledgments

- Built with ❤️ by [Robert DeVore](https://robertdevore.com/).
- Plugin Built with ❤️ by [Robert DeVore](https://robertdevore.com/).
- Icons powered by [Tabler Icons](https://tabler-icons.io/).
- Maintained by [WebDevStudios](https://webdevstudios.com).
45 changes: 40 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,49 @@
{
"name":"robertdevore/bluesky-feed-for-wordpress",
"name": "webdevstudios/bluesky-feed-for-wordpress",
"description": "Showcase your recent Bluesky posts on your WordPress® website in a variety of ways.",
"license": "GPL-2.0-or-later",
"type": "wordpress-plugin",
"author" : [
"config": {
"platform": {
"php": "8.0"
},
"allow-plugins": {
"composer/installers": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"squizlabs/php_codesniffer": true,
"wp-coding-standards/wpcs": true
},
"sort-packages": true
},
"authors": [
{
"name": "WebDevStudios",
"email": "hosting@webdevstudios.com",
"role": "Developer"
},
{
"name": "Robert DeVore",
"role": "Developer Emeritus"
}
],
"license": "GPL-2.0-or-later",
"require": {
"robertdevore/wpcom-check": "^1.0"
"composer/installers": "^2.3.0",
"php": ">=8.0"
},
"require-dev": {
"php": ">=8.0",
"dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",
"phpcompatibility/phpcompatibility-wp": "^2.1.6",
"squizlabs/php_codesniffer": "^3.12.1",
"wp-cli/wp-cli-bundle": "^2.11.0",
"wp-coding-standards/wpcs": "^3.1.0"
},
"scripts": {
"phpcs": [
"@php vendor/bin/phpcs --report=full,source"
],
"phpcs-fix": [
"@php vendor/bin/phpcbf --report=summary,source"
]
}
}
}
Loading
Loading