← ClaudeAtlas

vcs-prlisted

VCS Pull Request 创建 / 状态 / 合并 — 通过 secret://<ref> 间接 token,框架代为取 + 注入 Authorization header;agent 永不接触明文。可插拔 backend:gitea / github / gitlab。
Kucell/cortex-agent · ★ 1 · AI & Automation · score 74
Install: claude install-skill Kucell/cortex-agent
# vcs-pr (L1 secrets-vcs) 把"创建 PR"做成 framework 一等公民。Agent 说"用 `secret://gitea-pr` 创建 PR",框架负责 token + HTTP + 写 run event。 ## When to Use - Phase 1 session-triage 开启的 mission 干完一轮验证后 → `vcs-pr create --head feat/foo --base main --title "..."` - 想看 PR 现在 merged/closed 没 → `vcs-pr status --pr-number 5` - 显式 user gate 合并 PR → `vcs-pr merge --pr-number 5 --gate user` - 列已开 PR → `vcs-pr list --state open` ## Commands ```bash node .agent/skills/vcs-pr/scripts/index.js create \ --backend gitea \ --head feat/foo --base main \ --title "feat: ..." \ [--body-file .agent/pr-bodies/foo.md | --body-from-run R-session-001] \ --run-id R-session-001 --gate user node .agent/skills/vcs-pr/scripts/index.js status \ --pr-number 5 [--backend gitea] --gate agent node .agent/skills/vcs-pr/scripts/index.js merge \ --pr-number 5 [--commit-message "..."] --gate user node .agent/skills/vcs-pr/scripts/index.js list \ [--state open|merged|closed|all] --gate agent ``` PR 创建后,vcs-pr 自动: 1. 调 `secrets get --ref <cfg.token_ref> --no-mask --gate user` 取 token(只 vcs-pr 自己拿,**不**透传 agent) 2. 调对应 backend 的 `createPR()` — token 注入 `Authorization` header 3. 写 `runs/<run-id>.json#events[]` 一条 `vcs_pr_opened` event(pr_number / url / head / base) 4. 输出 JSON `{ok: true, action: "create", number, url, ...}`,**不含** token ## Configuration `.agent/config/vcs.yml`: ```yaml backend: gitea host: "http://192.168.2.110:3000" token_ref: gitea-pr default: org: SamkoonHMI repo: SamHMI base_branch: m