Skip to content

feat: per-repo profiles (make the pipeline project-agnostic) - #30

Merged
wangzhizhou merged 1 commit into
mainfrom
feat/portable-profiles
Nov 10, 2026
Merged

wangzhizhou merged 1 commit into
mainfrom
feat/portable-profiles

Conversation

@wangzhizhou

Copy link
Copy Markdown
Contributor

目标:同一套流水线适配 Node / Rust / Swift / Java / Go / 多语言仓库,不用改 runner 代码。

  • 仓库画像 config/repos.json + src/profile.ts:验证命令、受保护/禁止/敏感/忽略路径、依赖清单、经验文件、默认 agent/model、重试与配额。优先级:内置 < _defaults < 仓库条目 < 旧 config/verify.json < 环境变量。列表是替换语义,.github/、.git/、LICENSE 始终生效。
  • 验证探测新增 Swift / Gradle / Maven / Elixir。
  • 安全补洞:把命令引用到的脚本(bash scripts/check.sh)内容哈希进冻结闸门 —— 否则 agent 可以改裁判自己来通过。对脚本化验证的项目(Swift/iOS 很常见)这是关键。
  • OrzMCApp 画像落地:Ubuntu 可跑的 check-platform-split.sh、Swift 目录受保护、经验文件指向 docs/iteration-flow.md;退役 EASYGH_VERIFY_CMDS 变量。
  • docs/portability.md:字段表、优先级、运行环境约束(hub 是 Ubuntu)、接入清单、各技术栈示例。

The pipeline assumed one project: Node scripts, this repo's directory
layout, and a fixed learnings file. Make those knobs data:

- src/profile.ts + config/repos.json: verify commands, protected / blocked /
  sensitive / ignored paths, dependency manifests, learnings file, default
  agent/model, retry and quota. Precedence: built-in < _defaults < repo entry
  < legacy config/verify.json < env. Lists replace defaults; trust anchors
  (.github/, .git/, LICENSE) always stay. Zero-file targets keep no files in
  their repo - profiles live in the hub.
- verify: profile command beats detection; detection gains Swift (Package.swift),
  Gradle (gradlew), Maven (pom.xml), Elixir (mix.exs).
- risk/policy: accept per-repo path rules (OrzMCApp: Sources/, OrzMC.xcodeproj/).
- verify: hash the scripts the command invokes (`bash scripts/check.sh`) into
  the frozen gate, so an agent cannot "pass" by weakening the judge itself.
- OrzMCApp profile: Ubuntu-friendly check-platform-split.sh, Swift paths,
  docs/iteration-flow.md as learnings (the EASYGH_VERIFY_CMDS override is
  retired).
- docs/portability.md: field reference, precedence, runner constraints,
  onboarding checklist, stack examples.
@wangzhizhou
wangzhizhou merged commit 0834f39 into main Nov 10, 2026
2 checks passed
@wangzhizhou
wangzhizhou deleted the feat/portable-profiles branch November 10, 2026 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant