forked from ChainSafe/lodestar
-
Notifications
You must be signed in to change notification settings - Fork 0
66 lines (60 loc) · 2.17 KB
/
Copy pathproject-board.yml
File metadata and controls
66 lines (60 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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:
# Forks inherit this workflow but do not have the project token.
if: github.repository_owner == 'ChainSafe'
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 }}