From 4b42299571f157f263d5c3b771696bb197a2c90b Mon Sep 17 00:00:00 2001 From: timmyhadwen Date: Sun, 23 Aug 2026 17:58:06 +1000 Subject: [PATCH] ci: take a read-only PAT for private submodule checkout Gitea's per-job token is scoped to the calling repo, so cross-repo private submodules (micromelon-kicadlibs, micromelon_3d) fail with 'Repository not found'. Callers now pass SUBMODULE_TOKEN, a PAT scoped to read:repository, through to actions/checkout. --- .gitea/workflows/kibot.yml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/kibot.yml b/.gitea/workflows/kibot.yml index 59eebd8..c6a3752 100644 --- a/.gitea/workflows/kibot.yml +++ b/.gitea/workflows/kibot.yml @@ -48,6 +48,9 @@ on: required: true ASTABLE_API_TOKEN: required: true + SUBMODULE_TOKEN: + description: "Gitea PAT (read:repository) — the job token cannot read cross-repo private submodules" + required: true env: PROJECT_NAME: ${{ inputs.project_name }} @@ -91,6 +94,7 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive + token: ${{ secrets.SUBMODULE_TOKEN }} - name: KiBot ERC run: | [ -f "${PROJECT_NAME}/${PROJECT_NAME}.kicad_sch" ] || exit 0 @@ -123,6 +127,7 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive + token: ${{ secrets.SUBMODULE_TOKEN }} - uses: actions/download-artifact@v3 with: name: Validation @@ -169,7 +174,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot schematic PDF run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -203,7 +208,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot BOM run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -238,7 +243,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot 3D (STEP) run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -274,7 +279,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot gerbers run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -308,7 +313,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot CPL run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -343,7 +348,7 @@ jobs: KIBOT_VAR_rev_pcb: ${{ needs.extract_version.outputs.version }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - name: KiBot panel run: | export KIBOT_VAR_name=$(echo "${PROJECT_NAME}" | cut -d"-" -f1) @@ -393,7 +398,7 @@ jobs: ASTABLE_API_TOKEN: ${{ secrets.ASTABLE_API_TOKEN }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - uses: actions/download-artifact@v3 with: { name: Fabrication, path: Fabrication } - uses: actions/download-artifact@v3 @@ -444,7 +449,7 @@ jobs: ASTABLE_API_TOKEN: ${{ secrets.ASTABLE_API_TOKEN }} steps: - uses: actions/checkout@v4 - with: { submodules: recursive } + with: { submodules: recursive, token: '${{ secrets.SUBMODULE_TOKEN }}' } - uses: actions/download-artifact@v3 with: { name: Fabrication, path: Fabrication } - uses: actions/download-artifact@v3