diff --git a/.github/workflows/monthly_optimization_planner.yml b/.github/workflows/monthly_optimization_planner.yml index 78863f8..77aedf0 100644 --- a/.github/workflows/monthly_optimization_planner.yml +++ b/.github/workflows/monthly_optimization_planner.yml @@ -26,9 +26,21 @@ jobs: - name: Checkout uses: actions/checkout@v6 + - name: Detect GitHub App credentials + id: cross_repo_credentials + env: + APP_ID: ${{ vars.CROSS_REPO_GITHUB_APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.CROSS_REPO_GITHUB_APP_PRIVATE_KEY }} + run: | + if [ -n "$APP_ID" ] && [ -n "$APP_PRIVATE_KEY" ]; then + echo "has_app_credentials=true" >> "$GITHUB_OUTPUT" + else + echo "has_app_credentials=false" >> "$GITHUB_OUTPUT" + fi + - name: Create GitHub App token for cross-repo access id: cross_repo_app_token - if: vars.CROSS_REPO_GITHUB_APP_ID != '' && secrets.CROSS_REPO_GITHUB_APP_PRIVATE_KEY != '' + if: steps.cross_repo_credentials.outputs.has_app_credentials == 'true' uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.CROSS_REPO_GITHUB_APP_ID }} diff --git a/tests/test_monthly_optimization_planner_workflow_config.py b/tests/test_monthly_optimization_planner_workflow_config.py index 4654ff1..8a0ce2e 100644 --- a/tests/test_monthly_optimization_planner_workflow_config.py +++ b/tests/test_monthly_optimization_planner_workflow_config.py @@ -20,6 +20,8 @@ def test_planner_workflow_downloads_artifacts_posts_issue_and_fans_out_tasks(sel self.assertIn("CROSS_REPO_GITHUB_TOKEN", workflow) self.assertIn("CROSS_REPO_GITHUB_APP_PRIVATE_KEY", workflow) self.assertIn("CROSS_REPO_GITHUB_APP_ID", workflow) + self.assertIn("Detect GitHub App credentials", workflow) + self.assertIn("has_app_credentials", workflow) self.assertIn("actions/create-github-app-token@v2", workflow) self.assertIn("Resolve cross-repo access token", workflow) self.assertIn("source=github_app", workflow)