-
Notifications
You must be signed in to change notification settings - Fork 47
Add contributor acknowledgement system #354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Conversation
Introduces a comprehensive system for tracking and acknowledging contributors to the Secure Custom Fields project. Features: - Fetch contributor data from GitHub REST and GraphQL APIs - Track commits, reviews, comments, and issue reports - Link GitHub accounts to WordPress.org profiles - Smart rate limit handling with exponential backoff - Incremental processing with cursor tracking - Generate readme.txt contributors field (sorted by date) - Generate CONTRIBUTORS.md (sorted by wporg username) - Props-bot workflow for PR contributor comments - Automated update workflow (manual trigger for releases) Scripts: - bin/contributors-functions.php: Shared library functions - bin/backfill-contributors.php: CLI backfill script - bin/contributors.json: Contributor data store - composer contributors:update: Convenience command Tests: - 7 test files with comprehensive coverage - Rate limit handling tests - API integration tests - Output generation tests
Generated contributor data with 23 unique contributors: - 15 commit authors - 24 PR contributors (reviewers, commenters, issue reporters) - 16 with linked WordPress.org accounts - 4 bot accounts filtered out
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## trunk #354 +/- ##
============================================
- Coverage 53.67% 51.35% -2.32%
Complexity 4410 4410
============================================
Files 298 298
Lines 39424 39424
============================================
- Hits 21161 20248 -913
- Misses 18263 19176 +913
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a comprehensive contributor acknowledgement system that automatically tracks and recognizes contributors through GitHub API integrations. The system fetches contributor data (commits, reviews, comments, issues), links GitHub accounts to WordPress.org profiles, implements smart rate limiting with exponential backoff, supports incremental processing with cursor tracking, and generates multiple output files.
Changes:
- Added contributor tracking infrastructure with JSON data store and processing functions
- Implemented automated workflows for props-bot comments and manual contributor updates
- Generated comprehensive test coverage with 6 new test files covering all system components
Reviewed changes
Copilot reviewed 14 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| bin/contributors-functions.php | Core library with data operations, API integrations, rate limiting, and output generation |
| bin/backfill-contributors.php | CLI script for fetching historical contributor data from GitHub APIs |
| bin/contributors.json | JSON data store containing contributor information and processing metadata |
| .github/workflows/update-contributors.yml | Manual workflow for updating contributors during release process |
| .github/workflows/props-bot.yml | Automated props-bot workflow for PR contributor comments |
| readme.txt | Updated Contributors field with linked WordPress.org usernames |
| CONTRIBUTORS.md | Generated markdown table of all contributors |
| docs/contributing/contributors.md | Documentation page for contributors |
| docs/contributing/index.md | Updated with contributor acknowledgement information |
| composer.json | Added contributors:update script command |
| .phpcs.xml.dist | Added exclusions for test files and contributor scripts |
| tests/php/* | Six comprehensive test files covering all system components |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add --validate flag to cross-check against props-bot comments - Missing WordPress.org usernames from props-bot are added automatically - Update workflow to run validation during release process - Fix workflow to use correct bin/contributors.json path
Summary
Introduces a comprehensive system for tracking and acknowledging contributors to the Secure Custom Fields project.
Fixes #168
Features
Files
Scripts:
bin/contributors-functions.php: Shared library functionsbin/backfill-contributors.php: CLI backfill scriptbin/contributors.json: Contributor data storeWorkflows:
.github/workflows/props-bot.yml: Adds contributor comments to PRs while open.github/workflows/update-contributors.yml: Manual workflow for release processOutput:
readme.txt: Contributors field with wporg usernamesCONTRIBUTORS.md: Full contributor tabledocs/contributing/contributors.md: Docs site versionTest plan
composer contributors:updateto verify backfill works./vendor/bin/phpunit --filter Contributor