Moves qqq-print-protocol CI onto the shared Gitea workflow KofTwentyTwo/ci-workflowsnode.yaml (Node 24, pinned sha256-verified uv 0.13.6, verify only), replacing the retired GitHub Actions.
Commands (after npm ci --ignore-scripts), translated from the old .github/workflows/ci.yml verify job:
uv sync --locked
uv run --locked --no-sync python .github/scripts/test-script-quality.py
uv run --locked --no-sync python .github/scripts/check-script-quality.py
uv run --locked --no-sync python .github/scripts/test-source-headers.py
uv run --locked --no-sync python .github/scripts/check-source-headers.py
npm run typecheck
npm run lint
npm run check
npm run bundle
(The source-header scripts now run under uv run with the locked Python 3.13 instead of the image's python3.)
Removed:.github/workflows/ci.yml, codeql.yml, codeql-analysis.yml, pr-gates.yml, security.yml (GitHub-only), plus the CodeQL-only scripts .github/scripts/check-codeql-sarif.py and test-scan-gates.py that only the CodeQL workflow ran.
Changed: the EX-0015 uri-js guard in check-script-quality.py keeps its pins (single dev-only locked copy, version, lock integrity, installed LICENSE bytes); only its check of the pr-gates.ymlallow-dependencies-licenses entry is removed, together with that file and its test. .gitea/*.yaml is added to the source-header scope (the new workflow carries the notice). CONTRIBUTING.md is updated.
Kept:.github/scripts (the remaining quality/header scripts), .github/source-headers.json, .github/pyrightconfig.json, .github/CODEOWNERS, .github/dependabot.yml (GitHub-only, inert on Gitea).
Not ported (owner decision): tag releases (bundle + SHA256SUMS release assets, attestation), CodeQL and the security / PR-gates (DCO, conventional title, dependency/license review) scans.
CI: run 61 on 57670e9 (pinned to @main) was green; every command above passed. The final commit pins @v1; v1 does not contain node.yaml yet, so that run cannot resolve the workflow until the owner moves the v1 tag. Merged after the green @main run, as planned.
Moves qqq-print-protocol CI onto the shared Gitea workflow `KofTwentyTwo/ci-workflows` `node.yaml` (Node 24, pinned sha256-verified uv 0.13.6, verify only), replacing the retired GitHub Actions.
**Commands** (after `npm ci --ignore-scripts`), translated from the old `.github/workflows/ci.yml` verify job:
```
uv sync --locked
uv run --locked --no-sync python .github/scripts/test-script-quality.py
uv run --locked --no-sync python .github/scripts/check-script-quality.py
uv run --locked --no-sync python .github/scripts/test-source-headers.py
uv run --locked --no-sync python .github/scripts/check-source-headers.py
npm run typecheck
npm run lint
npm run check
npm run bundle
```
(The source-header scripts now run under `uv run` with the locked Python 3.13 instead of the image's `python3`.)
**Removed:** `.github/workflows/ci.yml`, `codeql.yml`, `codeql-analysis.yml`, `pr-gates.yml`, `security.yml` (GitHub-only), plus the CodeQL-only scripts `.github/scripts/check-codeql-sarif.py` and `test-scan-gates.py` that only the CodeQL workflow ran.
**Changed:** the EX-0015 `uri-js` guard in `check-script-quality.py` keeps its pins (single dev-only locked copy, version, lock integrity, installed LICENSE bytes); only its check of the `pr-gates.yml` `allow-dependencies-licenses` entry is removed, together with that file and its test. `.gitea/*.yaml` is added to the source-header scope (the new workflow carries the notice). CONTRIBUTING.md is updated.
**Kept:** `.github/scripts` (the remaining quality/header scripts), `.github/source-headers.json`, `.github/pyrightconfig.json`, `.github/CODEOWNERS`, `.github/dependabot.yml` (GitHub-only, inert on Gitea).
**Not ported (owner decision):** tag releases (bundle + SHA256SUMS release assets, attestation), CodeQL and the security / PR-gates (DCO, conventional title, dependency/license review) scans.
**CI:** run 61 on 57670e9 (pinned to `@main`) was green; every command above passed. The final commit pins `@v1`; `v1` does not contain node.yaml yet, so that run cannot resolve the workflow until the owner moves the `v1` tag. Merged after the green `@main` run, as planned.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Gitea CI runs the uv script-quality and source-header checks, typecheck,
lint, check and bundle through KofTwentyTwo/ci-workflows node.yaml (Node 24,
pinned uv). Removes the retired GitHub Actions workflows (ci, codeql,
codeql-analysis, pr-gates, security) and the CodeQL-only scripts. The EX-0015
uri-js guard keeps its lock/integrity/license pins; its check of the
pr-gates.yml allowlist entry goes with that file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Moves qqq-print-protocol CI onto the shared Gitea workflow
KofTwentyTwo/ci-workflowsnode.yaml(Node 24, pinned sha256-verified uv 0.13.6, verify only), replacing the retired GitHub Actions.Commands (after
npm ci --ignore-scripts), translated from the old.github/workflows/ci.ymlverify job:(The source-header scripts now run under
uv runwith the locked Python 3.13 instead of the image'spython3.)Removed:
.github/workflows/ci.yml,codeql.yml,codeql-analysis.yml,pr-gates.yml,security.yml(GitHub-only), plus the CodeQL-only scripts.github/scripts/check-codeql-sarif.pyandtest-scan-gates.pythat only the CodeQL workflow ran.Changed: the EX-0015
uri-jsguard incheck-script-quality.pykeeps its pins (single dev-only locked copy, version, lock integrity, installed LICENSE bytes); only its check of thepr-gates.ymlallow-dependencies-licensesentry is removed, together with that file and its test..gitea/*.yamlis added to the source-header scope (the new workflow carries the notice). CONTRIBUTING.md is updated.Kept:
.github/scripts(the remaining quality/header scripts),.github/source-headers.json,.github/pyrightconfig.json,.github/CODEOWNERS,.github/dependabot.yml(GitHub-only, inert on Gitea).Not ported (owner decision): tag releases (bundle + SHA256SUMS release assets, attestation), CodeQL and the security / PR-gates (DCO, conventional title, dependency/license review) scans.
CI: run 61 on
57670e9(pinned to@main) was green; every command above passed. The final commit pins@v1;v1does not contain node.yaml yet, so that run cannot resolve the workflow until the owner moves thev1tag. Merged after the green@mainrun, as planned.🤖 Generated with Claude Code