docs: 📝 openspec change — branch protection management (branch-protection capability) #195
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/OpenSpec
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
RFC - Request For Comments
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
hermes-attempted
hermes-needs-clarification
hermes-ready
hermes-review
hermes-wip
human-required
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
agentic-forges/forgejo-mcp!195
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/195/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
OpenSpec proposal for
forgejo-mcp-uc6: a newbranch-protectioncapability. Spec-only — no code in this PR (implementation follows in a separate PR, matching the label-crud lifecycle).Why
forgejo-mcp-f6h: a repo with no branch protection let Renovate automerge a PR while its required commit status was stillpending. The server has no MCP surface for Forgejo branch protection — operators can't see or fix the misconfig. This capability adds read + enforcement.Proposed surface
list_branch_protections,get_branch_protection,create_branch_protection,edit_branch_protection,delete_branch_protection— over/repos/{owner}/{repo}/branch_protections(SDK already binds these).forgejo://repo/{owner}/{repo}/branch_protections+ singleforgejo://repo/{owner}/{repo}/branch_protection/{rule}.Key design decisions (see
design.md)mcp-resources-core(still owned by the unarchivedmcp-resource-templateschange); bounding (output-bounding.md) + theforgejo://URI scheme are cited as constraints. Avoids a cross-change archive-ordering hazard.operation/branchprotection/package;ParseBranchProtection(s)added tooperation/resource.page/limit, resumable,EmbeddedListCapsentinel naminglist_branch_protections).edituses PATCH pointer semantics (only caller-passed fields change);create/editround-tripstatus_check_contexts.f6hfields + common hardening), not all ~22 rule fields.Artifacts
proposal.md·design.md·specs/branch-protection/spec.md(7 requirements, each with scenarios) ·tasks.md(6 task groups).After merge
Implement against the tasks (full CRUD + both resources + httptest coverage) in a follow-up PR, then archive. A partial implementation (URI parsers + param descriptions) is already stashed locally to seed that PR.
Part of forgejo-mcp-uc6. Discovered from forgejo-mcp-f6h.
op1st Pipelines as Code/forgejo-mcp-openspec-validate-pr-4lrcx is running.
Starting Pipelinerun forgejo-mcp-openspec-validate-pr-4lrcx in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines forgejo-mcp-openspec-validate-pr-4lrcx -fop1st Pipelines as Code/forgejo-mcp-on-pull-request-b46cz is running.
Starting Pipelinerun forgejo-mcp-on-pull-request-b46cz in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines forgejo-mcp-on-pull-request-b46cz -fop1st Pipelines as Code/forgejo-mcp-code-scans-qltz7 is running.
Starting Pipelinerun forgejo-mcp-code-scans-qltz7 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines forgejo-mcp-code-scans-qltz7 -fop1st Pipelines as Code/forgejo-mcp-openspec-validate-pr-4lrcx has successfully validated your commit.
Task Statuses:
fetch-source
validate
op1st Pipelines as Code/forgejo-mcp-code-scans-qltz7 has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/forgejo-mcp-on-pull-request-b46cz has successfully validated your commit.
Task Statuses:
fetch-source
build-and-test
commit-title-check