chore(rollout): shell-style repo list parsing, quoted input values
KofTwentyTwo/ci-policy: ci / fork-guard (push) Skipped
KofTwentyTwo/ci-policy: native / fork-deny (push) Skipped
KofTwentyTwo/ci-policy: native / build-macos-0 (push) Skipped
KofTwentyTwo/ci-policy: native / build-macos-1 (push) Skipped
KofTwentyTwo/ci-policy: native / build-macos-2 (push) Skipped
KofTwentyTwo/ci-policy: native / build-macos-3 (push) Skipped
KofTwentyTwo/ci-policy: native / build-windows-4 (push) Skipped
KofTwentyTwo/ci-policy: native / build-windows-5 (push) Skipped
KofTwentyTwo/ci-policy: native / build-windows-6 (push) Skipped
KofTwentyTwo/ci-policy: native / build-windows-7 (push) Skipped
KofTwentyTwo/ci-policy: native / dotnet-8 (push) Skipped
KofTwentyTwo/ci-policy: native / dotnet-9 (push) Skipped
KofTwentyTwo/ci-policy: native / dotnet-10 (push) Skipped
KofTwentyTwo/ci-policy: native / dotnet-11 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-12 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-13 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-14 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-15 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-16 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-17 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-18 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-19 (push) Skipped
KofTwentyTwo/ci-policy: ci / Scoped workflow [workflow 487dc0a5652510eaf62e13eb643cad6de8dc2cbe] (push) Successful in 6s
KofTwentyTwo/ci-policy: native / native-result (push) Successful in 8s
KofTwentyTwo/ci-policy: ci / go-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / go-nix-1 (push) Skipped
KofTwentyTwo/ci-policy: ci / gradle-2 (push) Skipped
KofTwentyTwo/ci-policy: ci / gradle-3 (push) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-4 (push) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-5 (push) Skipped
KofTwentyTwo/ci-policy: ci / manifests-6 (push) Skipped
KofTwentyTwo/ci-policy: ci / nix-7 (push) Skipped
KofTwentyTwo/ci-policy: ci / node-8 (push) Skipped
KofTwentyTwo/ci-policy: ci / python-9 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-10 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-11 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-12 (push) Skipped
KofTwentyTwo/ci-policy: ci / source-config-13 (push) Skipped
KofTwentyTwo/ci-policy: ci / source-config-14 (push) Skipped
KofTwentyTwo/ci-policy: ci / source-config-15 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-1 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-2 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-3 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-4 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-5 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-6 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-7 (push) Skipped
KofTwentyTwo/ci-policy: ci / content-validate-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / standards-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / node-matrix-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / shared-pipeline (push) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (push) Failing after 5s
KofTwentyTwo/ci-policy: ci / ci-result (push) Failing after 6s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
james.maesandClaude Opus 5.5 committed 2026-11-06 15:38:21 -06:00
1 parent d3389278cd
commit 1b09d2902b
2 files changed
+8 -4

No files matched your search

Binary file not shown.
+8 -4
View File
@@ -22,7 +22,7 @@ jobs:
uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/maven.yaml@v1
secrets: inherit
"""
REMOVE = [".gitea/workflows/qrun-release.yaml", ".gitea/workflows/release-rc.yaml", ".ci.yaml"]
REMOVE = [".gitea/workflows/qrun-release.yaml", ".gitea/workflows/release-rc.yaml", ".ci.yaml", ".gitea/workflows/qrun-next-release.yaml"]
MESSAGE = (
"ci: use shared ci-workflows Maven workflow\n\n"
"Replace the platform-ci release callers with one caller of\n"
@@ -50,7 +50,10 @@ def open_pr(repo, base=None):
branch = BRANCH if base == api(f"/repos/{repo}")["default_branch"] else f"{BRANCH}-{base}"
if api(f"/repos/{repo}/branches/{branch}", missing_ok=True):
return f"branch exists (base {base})"
caller = CALLER + (" with:\n" + "".join(f" {key}: {value}\n" for key, value in WITH.get(repo, {}).items())
def yaml_value(value):
"""Quote values YAML could misread (spaces, leading indicators); keep true/false/plain words bare."""
return json.dumps(value) if " " in value or value[:1] in "&*!|>'\"%@`{[" else value
caller = CALLER + (" with:\n" + "".join(f" {key}: {yaml_value(value)}\n" for key, value in WITH.get(repo, {}).items())
if WITH.get(repo) else "")
files = [{"operation": "create", "path": CALLER_PATH,
"content": base64.b64encode(caller.encode()).decode()}]
@@ -177,15 +180,16 @@ WITH = {} # repo -> workflow inputs, from list lines like "owner/repo publish=f
def main():
action, list_file = sys.argv[1], sys.argv[2]
import shlex
for line in open(list_file, encoding="utf-8"):
parts = line.split()
parts = shlex.split(line)
if len(parts) > 1:
WITH[parts[0]] = dict(part.split("=", 1) for part in parts[1:])
base = sys.argv[3] if len(sys.argv) > 3 else None
handlers = {"open": lambda repo: open_pr(repo, base), "status": status, "merge": merge,
"retrigger": retrigger, "pin": pin}
handler = handlers[action]
repos = [line.split()[0] for line in open(list_file, encoding="utf-8") if line.strip()]
repos = [shlex.split(line)[0] for line in open(list_file, encoding="utf-8") if line.strip()]
for repo in repos:
try:
print(f"{repo}: {handler(repo)}", flush=True)