Conversation
|
Warning Review limit reachedNext included review available in 10 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: jmrplens/gitlab-mcp-server/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (6)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: jmrplens/gitlab-mcp-server/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughAdmin action specifications now assign each action to the domain package named by its route. Tests verify the ownership. Audit declarations and documentation reflect the reassignment of all 92 actions. ChangesAdmin owner alignment
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 20 functions across 5 files. (1 skipped: 1 unsupported.) Full details: Description checkExplanation The description provides a detailed technical summary, but it does not use the required template sections. It omits the related issue, change type, explicit changes list, testing steps, migration notes, checklist status, and applicable logs or screenshots. Resolution Rewrite the description using the repository template. Add the required headings, provide the related issue or explain its absence, select the change type, list the changes, document concrete test commands and results, state migration notes as N/A if applicable, and complete the relevant checklist items. ✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
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 |
bf61305 to
59534ed
Compare
`adminspecs` declared itself the owner of all ninety-two instance administration actions, and it is the one package among them that never issues a request: every handler those actions route to lives in one of the twenty-three domain packages the route names, and that is the package the test transport writes into the request inventory. The owner is a join key rather than a label. R-PATH's observation check joins the catalog to the inventory on that name and on nothing else, so ninety-two actions could be joined to no recording at all, and a declaration in `declarations.go` existed only to keep the gate quiet about it. `adminOptions` now takes the owner beside the route, each one a constant naming the package whose handler that route calls, and the declaration is retired. The table is left in place and empty, which is the healthy state for it rather than an unfinished one. The owner constants are not trusted on their own. `TestActionSpecs_OwnerPackage_IsThePackageTheHandlerComesFrom` holds each of the ninety-two against the package its route's input type comes from, which is a fact of the route rather than a second copy of the table: every admin handler takes the input type its own package declares, so a copy-pasted constant fails instead of landing. That is the one error R-PATH itself cannot catch, since an owner naming a real package and the wrong one reads exactly like a right one. R-PATH now observes 1082 of 1082 catalog actions, with no silent package and no declaration. The sharper join immediately earned its keep in R-PAGE, which reports rather than gates: `admin.system_hook_list` moved out of the not-asked-about count and into the findings, because `systemhooks` records exactly one paginated endpoint, `GET /hooks`, which is the endpoint that action calls. It answers with a bare array of hooks and accepts no `page` or `per_page`, which is the `user.list_impersonation_tokens` class R-PAGE was built for and which the coarse owner had been hiding. Left as a finding, deliberately: there is no declaration category for a list GitLab pages and we do not. (cherry picked from commit 2a44dd1214acae9cf3ee0db0c5419751dab4ff22)
|



adminspecsdeclared itself the owner of all ninety-two instance administration actions, and it is the one package among them that never issues a request: every handler those actions route to lives in one of the twenty-three domain packages the route names, and that is the package the test transport writes into the request inventory.The owner is a join key rather than a label. R-PATH's observation check joins the catalog to the inventory on that name and on nothing else, so ninety-two actions could be joined to no recording at all, and a declaration in
declarations.goexisted only to keep the gate quiet about it.adminOptionsnow takes the owner beside the route, each one a constant naming the package whose handler that route calls, and the declaration is retired. The table is left in place and empty, which is the healthy state for it rather than an unfinished one.The owner constants are not trusted on their own.
TestActionSpecs_OwnerPackage_IsThePackageTheHandlerComesFromholds each of the ninety-two against the package its route's input type comes from, which is a fact of the route rather than a second copy of the table: every admin handler takes the input type its own package declares, so a copy-pasted constant fails instead of landing. That is the one error R-PATH itself cannot catch, since an owner naming a real package and the wrong one reads exactly like a right one.R-PATH now observes 1082 of 1082 catalog actions, with no silent package and no declaration. The sharper join immediately earned its keep in R-PAGE, which reports rather than gates:
admin.system_hook_listmoved out of the not-asked-about count and into the findings, becausesystemhooksrecords exactly one paginated endpoint,GET /hooks, which is the endpoint that action calls. It answers with a bare array of hooks and accepts nopageorper_page, which is theuser.list_impersonation_tokensclass R-PAGE was built for and which the coarse owner had been hiding. Left as a finding, deliberately: there is no declaration category for a list GitLab pages and we do not.(cherry picked from commit 2a44dd1214acae9cf3ee0db0c5419751dab4ff22)