Commit Graph
7 Commits
Author SHA1 Message Date
Satoshi Qazi Muhammed 07facbdda2 fix(ci): pass workflow_run head_branch through env; read-only tokens
auto-merge.yml interpolated ${{ github.event.workflow_run.head_branch }} straight into a run script that holds a contents:write token. A fork pull request controls that branch name, so it could run commands with write access (CodeQL actions/code-injection/critical). It now arrives as an environment variable.

ci.yml, code-quality.yml and deploy.yml get permissions: contents: read; none of them writes through GITHUB_TOKEN.
2026-10-20 22:07:02 +04:00
Satoshi Qazi Muhammed ee88cc6bd4 ci: run Node 20, the version the host deploys with
CI ran Node 18 (out of support since 2025-04) while ops/host/subquery-deploy
runs subql codegen/build on the host's Node 20. serialize-javascript 7, which
the build now resolves, needs the global crypto that Node 18 does not have:
the build failed in CI and would have passed on the host.
2026-10-12 17:17:27 +04:00
Satoshi Qazi Muhammed 7ec6d9971f ci: deploy over a pinned, single-purpose key instead of root
deploy-vps reached subquery1 as root, through appleboy/ssh-action referenced
by tag, with a key whose comment (mamostehp@MamostePC) made it look like a
person's. It now uses plain ssh with SUBQUERY_DEPLOY_KEY, which the host pins
(authorized_keys restrict,command=) to ops/host/subquery-deploy-ssh: the
commit SHA is its only input. subquery-deploy, run through sudo, does what
the workflow's script did, with three changes:

- It deploys exactly the SHA CI was triggered for, and only a commit on main.
- The host's local edits to tracked files (the indexer manifests) are put
  back whether the deploy succeeds or fails. Before, a failed build exited
  before `stash pop` and left them stashed.
- Only tracked files are stashed. Stashing untracked ones too (.yarn/, which
  yarn install recreates) made every pop fail half-way; that is how 13 stash
  entries piled up on the host.

test-deploy.sh covers this against a scratch clone (red with the restore
trap removed); CI runs it with shellcheck. subquery1's host key is pinned.
The indexer endpoints themselves are unchanged. Actions pinned to SHAs; the
secret scanner's own AGPL licence is allowed in dependency review.
2026-10-09 06:57:03 +04:00
Kurdistan Tech Ministry 15eeb16cd4 Fix subql commands: use correct CLI syntax for codegen and build 2026-02-13 01:46:08 +03:00
Kurdistan Tech Ministry 618cea47c6 Specify manifest file (-f pezkuwi.yaml) in CI workflows 2026-02-13 01:44:24 +03:00
Kurdistan Tech Ministry 4c3920ddae Fix CI workflows to use Yarn 4 (Berry) with corepack
- Add packageManager field to package.json for corepack
- Add .yarnrc.yml with node-modules linker
- Update all workflows to use corepack enable + yarn --immutable
- Remove yarn cache from actions/setup-node (incompatible with Yarn 4)
2026-02-13 01:42:00 +03:00
Kurdistan Tech Ministry 46ca19c22d Add security and code quality GitHub Actions workflows
Security workflow includes:
- CodeQL static analysis for TypeScript vulnerabilities
- npm audit for dependency vulnerabilities (fails on critical)
- Dependency review on PRs (blocks high severity, GPL licenses)
- TruffleHog secret scanning
- Weekly scheduled security scans

Code quality workflow includes:
- ESLint linting checks
- Prettier formatting validation
- TypeScript strict type checking
- Cyclomatic complexity analysis (warns on >15)
- Duplicate code detection with jscpd
2026-02-13 01:37:31 +03:00