Skip to content

01a0aa7f - Hold external fork CI until A38 approval - #1501

Draft
TaprootFreakAI wants to merge 7 commits into
DFXswiss:developfrom
TaprootFreakAI:feat/01a0aa7f-hold-external-fork-ci
Draft

TaprootFreakAI wants to merge 7 commits into
DFXswiss:developfrom
TaprootFreakAI:feat/01a0aa7f-hold-external-fork-ci

Conversation

@TaprootFreakAI

@TaprootFreakAI TaprootFreakAI commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

EN:
PR CI jobs wait on environment pr-ci until a required reviewer approves (Review deployments) or the A38 guard does.
This is the public-repo analog of the private-backend fork hold, including org members.

DE:
Die PR-CI-Jobs warten auf die Umgebung pr-ci, bis ein Required Reviewer (Review deployments) oder der A38-Guard freigibt.
Das ist das öffentliche Gegenstück zum privaten Backend-Fork-Hold, auch für Org-Mitglieder.

Details

Environment pr-ci required reviewers: davidleomay, TaprootFreak, TaprootFreakAI. Prevent self-review is off so the guard can approve with a reviewer token. Lint and Build wait on that environment; Full-stack E2E stays behind Build (GitHub forbids environment on a reusable-workflow caller job). Fork action_required remains for true externals.

@github-actions

Copy link
Copy Markdown

EN:
Thanks for your contribution! This repository follows the A38 quality rules.

DE:
Danke für deinen Beitrag! In diesem Repository gelten die A38-Qualitätsregeln.

@TaprootFreakAI

TaprootFreakAI commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator Author

EN:
Ready after 5 review passes.
PR CI jobs wait on environment pr-ci until a required reviewer approves.

DE:
Bereit nach 5 Review-Durchläufen.
Die PR-CI-Jobs warten auf Umgebung pr-ci, bis ein Required Reviewer freigibt.

Details

Quality and logic review: complete, 0 findings at head 6bcf869309061389ac2a83f85d3c2c86811cb181. A38 report posted for that head. Guard pin is 8892859d (agent #104). environment_approval is still omitted so the live develop guard does not reject the head. A38 adopter: remains draft. Policy-migration approval must match this new head/base after the rebase.

@TaprootFreakAI

Copy link
Copy Markdown
Collaborator Author

EN:
The A38 report below records the checks, results and durations.

DE:
Der A38-Bericht unten dokumentiert die Prüfungen, Ergebnisse und Laufzeiten.

Details
Check / Prüfung Duration / Laufzeit Result / Ergebnis Exit code
lint: Lint and Markdown format 51 s pass 0

Durations rounded up to whole seconds / Laufzeiten auf ganze Sekunden aufgerundet.

Original report / Originalbericht
{
  "head": "2e5da57c235e680205febc7904fbf684aaad562a",
  "private": false,
  "recorded_at": "2026-09-17T04:52:14Z",
  "repo": "DFXswiss/app",
  "required": [
    "lint"
  ],
  "runs": [
    {
      "command": "agent a38 job commands --config '{\"env\":{\"CI\":\"true\"},\"npm\":{\"canaries\":[\"react-app-rewired/package.json\",\"react-scripts/package.json\",\"typescript/lib/typescript.js\",\"prettier/package.json\"],\"node_major\":20},\"steps\":[[\"npm\",\"run\",\"lint\"],[\"npm\",\"run\",\"format:md:check\"]]}'",
      "duration_s": 50.12718850001693,
      "exit_code": 0,
      "id": "lint",
      "name": "Lint and Markdown format",
      "result": "pass",
      "timeout_s": 600.0
    }
  ],
  "schema": "dfx-local-ci/v1"
}

@TaprootFreakAI

Copy link
Copy Markdown
Collaborator Author

EN:
The A38 report below records the checks, results and durations.

DE:
Der A38-Bericht unten dokumentiert die Prüfungen, Ergebnisse und Laufzeiten.

Details
Check / Prüfung Duration / Laufzeit Result / Ergebnis Exit code
lint: Lint and Markdown format 11 s pass 0

Durations rounded up to whole seconds / Laufzeiten auf ganze Sekunden aufgerundet.

Original report / Originalbericht
{
  "head": "b00603077c89a9de8c96069367b0436a92806018",
  "private": false,
  "recorded_at": "2026-09-17T04:57:52Z",
  "repo": "DFXswiss/app",
  "required": [
    "lint"
  ],
  "runs": [
    {
      "command": "agent a38 job commands --config '{\"env\":{\"CI\":\"true\"},\"npm\":{\"canaries\":[\"react-app-rewired/package.json\",\"react-scripts/package.json\",\"typescript/lib/typescript.js\",\"prettier/package.json\"],\"node_major\":20},\"steps\":[[\"npm\",\"run\",\"lint\"],[\"npm\",\"run\",\"format:md:check\"]]}'",
      "duration_s": 10.277717542019673,
      "exit_code": 0,
      "id": "lint",
      "name": "Lint and Markdown format",
      "result": "pass",
      "timeout_s": 600.0
    }
  ],
  "schema": "dfx-local-ci/v1"
}

@TaprootFreak TaprootFreak left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A38-POLICY-APPROVAL:v1 head=b00603077c89a9de8c96069367b0436a92806018 base=d93eb60881cdf1359c131ed61dd286981aef55c8

@TaprootFreakAI

Copy link
Copy Markdown
Collaborator Author

EN:
Policy approval is on the current head; please reconcile.

DE:
Die Policy-Freigabe liegt auf dem aktuellen Head; bitte neu bewerten.

CONTRIBUTING now states that fork pull-request runs from external
contributors stay action_required until the guard approves them.
Product pull-request jobs wait for a required reviewer (or the A38
guard) before they run, including org-member authors.
GitHub rejects environment on a job that uses a reusable workflow, so
PR CI failed to parse. Lint and Build still wait on pr-ci; E2E stays
behind Build.
CONTRIBUTING and the E2E harness README now match the workflows: CodeQL
skips the environment, and the reusable E2E caller waits behind Build.
The reusable E2E caller cannot take environment; the file header now
matches that.
The adopter pin now tracks DFXswiss/agent develop after DFXswiss#103. The
pr-guard environment_approval object stays off until this pin is live
on develop, or the current guard rejects the head config.
After agent DFXswiss#104, leave-draft no longer waits for CI-AUTH when required
CI is already green and nothing was held.
@TaprootFreakAI

Copy link
Copy Markdown
Collaborator Author

EN:
The A38 report below records the checks, results and durations.

DE:
Der A38-Bericht unten dokumentiert die Prüfungen, Ergebnisse und Laufzeiten.

Details
Check / Prüfung Duration / Laufzeit Result / Ergebnis Exit code
lint: Lint and Markdown format 9 s pass 0

Durations rounded up to whole seconds / Laufzeiten auf ganze Sekunden aufgerundet.

Original report / Originalbericht
{
  "head": "6bcf869309061389ac2a83f85d3c2c86811cb181",
  "private": false,
  "recorded_at": "2026-09-17T08:44:33Z",
  "repo": "DFXswiss/app",
  "required": [
    "lint"
  ],
  "runs": [
    {
      "command": "agent a38 job commands --config '{\"env\":{\"CI\":\"true\"},\"npm\":{\"canaries\":[\"react-app-rewired/package.json\",\"react-scripts/package.json\",\"typescript/lib/typescript.js\",\"prettier/package.json\"],\"node_major\":20},\"steps\":[[\"npm\",\"run\",\"lint\"],[\"npm\",\"run\",\"format:md:check\"]]}'",
      "duration_s": 8.53990883298684,
      "exit_code": 0,
      "id": "lint",
      "name": "Lint and Markdown format",
      "result": "pass",
      "timeout_s": 600.0
    }
  ],
  "schema": "dfx-local-ci/v1"
}

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.

2 participants