feat: Contributor Class Plugin - Bounty #48 ($300)#88
Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 37 minutes and 53 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughA trailing blank line was appended to the README.md file. This is a minimal formatting adjustment with no changes to exported entities or functional code. The modification consists of a single line addition to the repository's documentation file. 🚥 Pre-merge checks | ✅ 1 | ❌ 4❌ Failed checks (4 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- Contributor classification: author > assignee > collaborator > contributor - Configurable reward multipliers per class - Fetches org members and repo collaborators (paginated) - Full test suite (7 test cases) - TypeScript with strict mode
Summary
Implements wishlist issue #48: Generalized "GitHub Webhook + Contributor Role -> Rewards" Contributor Class v2.
Plugin Repository
Repository: zhaog100/ubiquity-os-contributor-class
Features
Extends the Contributor Role (#46) concept by identifying a user's contributor class from GitHub webhook events:
specification_author— The original author of the task/issueassignee— The user responsible for the deliverablecollaborator— An official org/repo team member (queried via GitHub API)contributor— The default option for all other usersHow It Works
The plugin listens to GitHub webhook events and determines contributor class using this priority chain:
specification_authorassigneerepos.checkCollaboratorAPI →collaboratorcontributorSupported Events
issue_comment.createdpull_request_review_comment.createdissues.openedissues.assignedpull_request.openedTechnical Details
@ubiquity-os/plugin-sdkfor plugin lifecycle@ubiquity-os/plugin-sdk/octokitfor authenticated GitHub API accessIntegration
This plugin is designed to work alongside
text-conversation-rewardsto provide contributor class information that can influence reward calculations. The exportedgetContributorClass()function can be used by other plugins.Closes #48