Project board #1339
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Project board | |
| # Keeps the ChainSafe org project's Status lanes in sync with PR state. | |
| # Spec: .github/scripts/project-board/README.md | |
| # Safe with pull_request_target: this workflow never checks out or executes PR code — | |
| # it only checks out ChainSafe/lodestar@unstable for the reconciler script. | |
| on: | |
| pull_request_target: | |
| types: | |
| - opened | |
| - ready_for_review | |
| - converted_to_draft | |
| - review_requested | |
| - review_request_removed | |
| - reopened | |
| # No Actions secrets on external-fork reviews; main.ts verifies the payload before skipping. | |
| pull_request_review: | |
| types: | |
| - submitted | |
| - dismissed | |
| schedule: | |
| - cron: "*/15 * * * *" | |
| workflow_dispatch: | |
| inputs: | |
| pr: | |
| description: "owner/repo#number to reconcile (empty = sweep the whole board)" | |
| required: false | |
| type: string | |
| # Entry point for accessory repos (thin callers; see .github/scripts/project-board/project-board-caller.yml) | |
| workflow_call: | |
| secrets: | |
| # Optional because GitHub withholds Actions secrets from external-fork review events. | |
| # main.ts validates every other missing-token context. | |
| PROJECT_BOARD_TOKEN: | |
| required: false | |
| permissions: {} | |
| concurrency: | |
| group: project-board-${{ github.event.pull_request.number || github.event_name }} | |
| cancel-in-progress: false | |
| jobs: | |
| reconcile: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout reconciler (lodestar@unstable, never PR code) | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: ChainSafe/lodestar | |
| ref: unstable | |
| sparse-checkout: .github/scripts/project-board | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: 24 | |
| - name: Reconcile | |
| run: node .github/scripts/project-board/src/main.ts ${PR:+--pr "$PR"} | |
| env: | |
| PR: ${{ inputs.pr }} | |
| PROJECT_BOARD_TOKEN: ${{ secrets.PROJECT_BOARD_TOKEN }} | |
| DRY_RUN: ${{ vars.PROJECT_BOARD_DRY_RUN }} |