Expose public bounty page URLs in work discovery (#975)#1173
Conversation
|
Warning Review limit reached
Next review available in: 11 minutes Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable usage-based reviews in Billing to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information, and refer to the rate limits docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
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 |
prettyboyvic
left a comment
There was a problem hiding this comment.
Findings:
- [P2] The work-discovery API example still documents the old
source_urlspayload. Issue #975's proposed work and acceptance criteria ask for API examples/docs to be updated so agents know which URL is for JSON and which URL is for human review, butdocs/api-examples.mdstill shows onlybounty,attempts, andgithub_issuefor both live and terminal work-discovery rows. That leaves the public docs stale exactly where this PR addspublic_bounty_pageandclaimable_matches, so an agent following the documented response will still have to infer the browser links the PR is meant to expose. Please update the work-discovery example/docs and the existing docs smoke coverage if needed.
Validation: checked current PR head 07f3149f8b1dd94479be1e963d36af31cff7b57c; ran .\.venv\Scripts\python.exe -m pytest tests/test_work_discovery.py tests/test_public_routes.py tests/test_bounty_pages.py -q (33 passed, 1 warning), git diff --check origin/main...HEAD, and a local smoke that followed the generated claimable_matches URL to /bounties and found the expected bounty page link.
…very examples (fixes ramimbo#975 review)
07f3149 to
2cfc77a
Compare
|
@prettyboyvic Updated the work-discovery docs per your review.
Latest head: |
prettyboyvic
left a comment
There was a problem hiding this comment.
Reviewed the latest head 2cfc77a638c55aaf2cb4839681e8d0d6a4ce37e6; the docs follow-up addresses my previous request. The new public_bounty_page and claimable_matches fields are documented in the work-discovery example, and the implementation/test coverage for the generated URLs looks focused.
Validation:
git diff --check origin/main...HEAD-> passeduv run --extra dev pytest tests/test_work_discovery.py tests/test_public_routes.py tests/test_bounty_pages.py -q-> 33 passed, 1 warninguv run --extra dev python scripts/docs_smoke.py-> docs smoke okuv run --extra dev ruff format --check app/work_discovery.py tests/test_work_discovery.py-> 2 files already formatted
|
@prettyboyvic Thanks for the approval — CI remains green on the latest head. Ready to merge whenever maintainers have bandwidth. |
2 similar comments
|
@prettyboyvic Thanks for the approval — CI remains green on the latest head. Ready to merge whenever maintainers have bandwidth. |
|
@prettyboyvic Thanks for the approval — CI remains green on the latest head. Ready to merge whenever maintainers have bandwidth. |
qingfeng312
left a comment
There was a problem hiding this comment.
Reviewed current head 2cfc77a638c55aaf2cb4839681e8d0d6a4ce37e6. The new source_urls fields are built from the bounty id, repo, and issue number already present in the work-discovery row, so the API keeps the existing machine paths while exposing the human bounty page and equivalent claimable filter URL. The docs example and tests/test_work_discovery.py expected payload cover both added fields, and the GitHub quality/readiness check is passing. No blocking issues found.
|
@prettyboyvic @qingfeng312 Both approvals are in and CI is still green on The work-discovery |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
17 similar comments
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
1 similar comment
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@qingfeng312 — CI fully green on latest head for bounty #975. PR #1173 (
Please recheck when convenient. Merge-ready. Wallet: |
|
@qingfeng312 — Public bounty page URLs in work discovery on Wallet: |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
3 similar comments
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
|
@prettyboyvic @qingfeng312 Follow-up on #975 — both approvals remain in place and CI is still green on The scoped |
Summary
Adds two stable public-page routing URLs to
source_urlson every live and terminal bounty row returned byGET /api/v1/work-discovery:source_urls.public_bounty_page—/bounties/{bounty_id}(the existing human detail route).source_urls.claimable_matches— a filtered/bountiesURL preservingrepo,issue_number,status=open,sort=reward, andavailability=effectively_open.source_urls.bountyandsource_urls.attemptsare preserved for backward compatibility. Pending-create rows are intentionally left alone because they do not yet have a public bounty id and a fake/bounties/{id}link would be misleading.Why
Agents and contributors can already discover work via the API, but the public bounty detail page (and a filtered claimable list) is not exposed in the response. They have to infer the route (
/bounties/{id}) or rebuild a filtered URL themselves before they can review acceptance details, pending capacity, and contributor next steps in the browser. This PR closes that gap without changing any claimability semantics.Behavior
Before:
After (live and terminal rows):
Pending-create rows continue to expose only
proposalandgithub_issuesource URLs.Tests
tests/test_work_discovery.py::test_work_discovery_distinguishes_live_and_pending_create_workto assert the newpublic_bounty_pageandclaimable_matcheskeys for the live row.Out of scope
availability_state,effective_awards_remaining, or any other field.Closes #975
Solana wallet for bounty payout:
Do4v7foHJvRJLpRRoGaVPWX6DDEjX3yTK7J91gpwUQpE