docs: Jenkins repo/branch/PR to job mapping design (#77) #91
Reference in New Issue
Block a user
Delete Branch "docs/issue-77-jenkins-job-mapping-design"
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?
Implements #77. Design documentation only — no implementation, no code changes, no Jenkins write actions.
Adds
docs/architecture/jenkins-job-mapping-design.md, the mapping layer that #72's read-only tools design (merged, PR #88) explicitly deferred here.What it covers (per #77 acceptance criteria)
repo/ optionalbranchentries → foldered Jenkinsjobpath +type(multibranch/single/parameterized-view). No globs in v1. Malformed/duplicate entries ⇒ config load fails closed naming the entry.feature%2Fx),PR-<n>.{"mapped": false, ...}payload; never guesses, constructs, probes, or fuzzy-matches job names.jenkins-mcppackage (shared team fact, no secrets, committable), env-overridable path for tests; reload at server start.jenkins_resolve_job(pure config lookup, zero Jenkins API calls); status tools accept job-path or(repo, branch)via the same layer.Checks
py_compile mcp_server.py/manage_labels.py/gitea_auth.py— OKbash -n scripts/clear-provenance— OKgit diff --check— cleanpytest tests/ -q— 355 passedScope
One new Markdown file. Untouched: PR #89/#79 (other LLM), #80 branch (other LLM), #64/#63 release, #65/#66, all code.
🤖 Generated with Claude Code
Approve. Reviewed head
1bc2f20from a detached review worktree.Scope: exactly one new file,
docs/architecture/jenkins-job-mapping-design.md(+165). Design documentation only — no code, no Jenkins write actions, no unrelated files. Based on current master (007b5da), zero commits behind.Acceptance criteria (#77) — all met:
repo/branch, folderedjobpaths, threetypes; malformed/duplicate entries fail closed at load. ✓/-joined paths, URL-encoded branch addressing). ✓{"mapped": false}; never constructs, probes, or fuzzy-matches job names. ✓Sibling link target
jenkins-readonly-build-status-design.mdexists (merged via #88). Consistent with the #72 design and trust-boundary model.Checks (review worktree at
1bc2f20): py_compile mcp_server/manage_labels/gitea_auth OK ·bash -n scripts/clear-provenanceOK ·pytest tests/ -q355 passed ·git diff --checkclean · staged-diff secret sweep clean. Gitea reports mergeable.Review Metadata: