From aaf0b7c31fe9c76259505a6c124b481c98ed059c Mon Sep 17 00:00:00 2001 From: Chuck McAndrew <6248903+dcmcand@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:55:23 +0200 Subject: [PATCH 1/2] chore: sync priority labels to project Priority field --- .github/workflows/add-to-project.yaml | 37 +++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/.github/workflows/add-to-project.yaml b/.github/workflows/add-to-project.yaml index 1d1d278..e7e0e07 100644 --- a/.github/workflows/add-to-project.yaml +++ b/.github/workflows/add-to-project.yaml @@ -2,9 +2,9 @@ name: Add to project on: issues: - types: [opened] + types: [opened, labeled, unlabeled] pull_request: - types: [opened] + types: [opened, labeled, unlabeled] jobs: add-to-project: @@ -12,6 +12,39 @@ jobs: steps: # https://github.com/actions/add-to-project/releases/tag/v1.0.2 - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e + id: add with: project-url: ${{ vars.PROJECT_BOARD_URL }} github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} + + - name: Sync priority field from labels + if: steps.add.outputs.itemId != '' + env: + GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} + PROJECT_ID: PVT_kwDOBd3CI84BKoKt + FIELD_ID: PVTSSF_lADOBd3CI84BKoKtzg6cHO8 + ITEM_ID: ${{ steps.add.outputs.itemId }} + LABELS: ${{ toJSON(github.event.issue.labels || github.event.pull_request.labels) }} + run: | + set -uo pipefail + PRIORITY=$(echo "$LABELS" | jq -r '.[].name' | grep -oE '^priority: (critical|high|medium|low|icebox)' | head -1 | awk '{print $2}') + case "$PRIORITY" in + critical) OPT=79628723 ;; + high) OPT=0a877460 ;; + medium) OPT=da944a9c ;; + low) OPT=2772da2e ;; + icebox) OPT=ff56cb75 ;; + *) OPT="" ;; + esac + + if [ -n "$OPT" ]; then + gh api graphql -f query=' + mutation($p:ID!,$i:ID!,$f:ID!,$o:String!) { + updateProjectV2ItemFieldValue(input:{projectId:$p,itemId:$i,fieldId:$f,value:{singleSelectOptionId:$o}}) { projectV2Item { id } } + }' -F p="$PROJECT_ID" -F i="$ITEM_ID" -F f="$FIELD_ID" -f o="$OPT" + else + gh api graphql -f query=' + mutation($p:ID!,$i:ID!,$f:ID!) { + clearProjectV2ItemFieldValue(input:{projectId:$p,itemId:$i,fieldId:$f}) { projectV2Item { id } } + }' -F p="$PROJECT_ID" -F i="$ITEM_ID" -F f="$FIELD_ID" + fi From 9c995731140487902412e5a6c8c1a739daa0a97e Mon Sep 17 00:00:00 2001 From: Chuck McAndrew <6248903+dcmcand@users.noreply.github.com> Date: Wed, 15 Apr 2026 12:20:20 +0200 Subject: [PATCH 2/2] refactor: use reusable workflow from nebari-dev/.github --- .github/workflows/add-to-project.yaml | 47 ++++----------------------- 1 file changed, 6 insertions(+), 41 deletions(-) diff --git a/.github/workflows/add-to-project.yaml b/.github/workflows/add-to-project.yaml index e7e0e07..9b3f26e 100644 --- a/.github/workflows/add-to-project.yaml +++ b/.github/workflows/add-to-project.yaml @@ -7,44 +7,9 @@ on: types: [opened, labeled, unlabeled] jobs: - add-to-project: - runs-on: ubuntu-latest - steps: - # https://github.com/actions/add-to-project/releases/tag/v1.0.2 - - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e - id: add - with: - project-url: ${{ vars.PROJECT_BOARD_URL }} - github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} - - - name: Sync priority field from labels - if: steps.add.outputs.itemId != '' - env: - GH_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} - PROJECT_ID: PVT_kwDOBd3CI84BKoKt - FIELD_ID: PVTSSF_lADOBd3CI84BKoKtzg6cHO8 - ITEM_ID: ${{ steps.add.outputs.itemId }} - LABELS: ${{ toJSON(github.event.issue.labels || github.event.pull_request.labels) }} - run: | - set -uo pipefail - PRIORITY=$(echo "$LABELS" | jq -r '.[].name' | grep -oE '^priority: (critical|high|medium|low|icebox)' | head -1 | awk '{print $2}') - case "$PRIORITY" in - critical) OPT=79628723 ;; - high) OPT=0a877460 ;; - medium) OPT=da944a9c ;; - low) OPT=2772da2e ;; - icebox) OPT=ff56cb75 ;; - *) OPT="" ;; - esac - - if [ -n "$OPT" ]; then - gh api graphql -f query=' - mutation($p:ID!,$i:ID!,$f:ID!,$o:String!) { - updateProjectV2ItemFieldValue(input:{projectId:$p,itemId:$i,fieldId:$f,value:{singleSelectOptionId:$o}}) { projectV2Item { id } } - }' -F p="$PROJECT_ID" -F i="$ITEM_ID" -F f="$FIELD_ID" -f o="$OPT" - else - gh api graphql -f query=' - mutation($p:ID!,$i:ID!,$f:ID!) { - clearProjectV2ItemFieldValue(input:{projectId:$p,itemId:$i,fieldId:$f}) { projectV2Item { id } } - }' -F p="$PROJECT_ID" -F i="$ITEM_ID" -F f="$FIELD_ID" - fi + sync: + uses: nebari-dev/.github/.github/workflows/sync-project-priority.yaml@main + with: + project-id: PVT_kwDOBd3CI84BKoKt + secrets: + token: ${{ secrets.ADD_TO_PROJECT_PAT }}