What
Add permissions: contents: write to the build-Doxygen.yaml caller workflow to fix startup_failure on every push/PR.
Current Behavior
The Generate-Documentation workflow fails with startup_failure (0 jobs created) because the caller workflow lacks the required permissions block for the reusable workflow at kcenon/common_system/.github/workflows/doxygen.yml@main.
Expected Behavior
Workflow succeeds and deploys documentation to GitHub Pages.
Why
GitHub Actions requires caller workflows to explicitly declare permissions when invoking reusable workflows that need elevated token access. The reusable doxygen.yml needs contents: write for peaceiris/actions-gh-pages@v4 deployment. Without it, the GITHUB_TOKEN has no write access and the workflow fails at startup.
- Root cause identified: Introduced 2026-02-22 when reusable workflow pattern was adopted (commit
d36d47e)
- Proven fix: pacs_system applied identical fix on 2026-03-18 (commit
e559995f) and CI is green since
Where
.github/workflows/build-Doxygen.yaml
How
Technical Approach
Add permissions block between on: and jobs: sections:
permissions:
contents: write
Acceptance Criteria
Related
What
Add
permissions: contents: writeto thebuild-Doxygen.yamlcaller workflow to fixstartup_failureon every push/PR.Current Behavior
The Generate-Documentation workflow fails with
startup_failure(0 jobs created) because the caller workflow lacks the required permissions block for the reusable workflow atkcenon/common_system/.github/workflows/doxygen.yml@main.Expected Behavior
Workflow succeeds and deploys documentation to GitHub Pages.
Why
GitHub Actions requires caller workflows to explicitly declare permissions when invoking reusable workflows that need elevated token access. The reusable
doxygen.ymlneedscontents: writeforpeaceiris/actions-gh-pages@v4deployment. Without it, theGITHUB_TOKENhas no write access and the workflow fails at startup.d36d47e)e559995f) and CI is green sinceWhere
.github/workflows/build-Doxygen.yamlHow
Technical Approach
Add
permissionsblock betweenon:andjobs:sections:Acceptance Criteria
build-Doxygen.yamlincludespermissions: contents: writeRelated