feat: PullRequestQuery builder with fluent filtering API#33
feat: PullRequestQuery builder with fluent filtering API#33github-actions[bot] merged 1 commit intomasterfrom
Conversation
- Created PullRequestQueryInterface with all method signatures - Enhanced QueryBuilder to implement PullRequestQueryInterface - Added whereMerged() for filtering merged PRs (client-side) - Added whereDraft() for filtering draft PRs (client-side) - Added whereBase() for filtering by base branch - Added whereHead() for filtering by head branch - Comprehensive test suite with 100% coverage - All quality gates passing (Pint, PHPStan) Closes #20
|
Warning Rate limit exceeded@jordanpartridge has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 15 minutes and 26 seconds before requesting another review. ⌛ 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. 📒 Files selected for processing (3)
✨ 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 |
Summary
Implements the core
PullRequestQuerybuilder enhancements with a fluent filtering API as specified in issue #20.Changes
Contracts\PullRequestQueryInterfacewith all required method signaturesQueryBuilderto implementPullRequestQueryInterfacewhereMerged()- Filter for merged pull requests (client-side filtering)whereDraft()- Filter for draft pull requests (client-side filtering)whereBase(string $branch)- Filter by base branch (API-level)whereHead(string $branch)- Filter by head branch (API-level)Testing
Technical Notes
whereMerged()andwhereDraft()use client-side filtering because GitHub's PR list API doesn't support these filters natively_internally to separate from API parameterswhereBase()andwhereHead()map directly to GitHub API parameters for efficient server-side filteringCloses #20