[READ-ONLY] Mirror of https://github.com/bombshell-dev/automation. GitHub Actions for the Bombshell organization
ci
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: new add-issue-to-project action

Nate Moore (Dec 29, 2024, 12:35 AM -0600) 1d582370 79064d80

+96
+96
.github/workflows/add-issue-to-project.yml
··· 1 + name: Add issue to project 2 + 3 + on: 4 + workflow_call: 5 + 6 + jobs: 7 + issue: 8 + runs-on: ubuntu-latest 9 + steps: 10 + - name: Generate a token 11 + id: bot-token 12 + uses: actions/create-github-app-token@v1 13 + with: 14 + app-id: ${{ vars.BOT_APP_ID }} 15 + private-key: ${{ secrets.BOT_PRIVATE_KEY }} 16 + 17 + - name: Get project data 18 + env: 19 + GH_TOKEN: ${{ steps.bot-token.outputs.token }} 20 + ORGANIZATION: bombshell-dev 21 + PROJECT_NUMBER: 1 22 + 23 + run: | 24 + gh api graphql -f query=' 25 + query($org: String!, $number: Int!) { 26 + organization(login: $org){ 27 + projectV2(number: $number) { 28 + id 29 + fields(first:20) { 30 + nodes { 31 + ... on ProjectV2Field { 32 + id 33 + name 34 + } 35 + ... on ProjectV2SingleSelectField { 36 + id 37 + name 38 + options { 39 + id 40 + name 41 + } 42 + } 43 + } 44 + } 45 + } 46 + } 47 + }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json 48 + 49 + echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV 50 + echo 'FIELD_ID_STATUS='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV 51 + echo 'OPTION_ID_STATUS_TRIAGE='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Needs triage") |.id' project_data.json) >> $GITHUB_ENV 52 + echo 'OPTION_ID_STATUS_BACKLOG='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Backlog") |.id' project_data.json) >> $GITHUB_ENV 53 + 54 + - name: Add Issue to project 55 + env: 56 + GH_TOKEN: ${{ steps.bot-token.outputs.token }} 57 + ISSUE_ID: ${{ github.event.issues.node_id }} 58 + 59 + run: | 60 + item_id="$( gh api graphql -f query=' 61 + mutation($project:ID!, $issue:ID!) { 62 + addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { 63 + item { 64 + id 65 + } 66 + } 67 + }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')" 68 + 69 + # Stores the ID of the created item as an environment variable. 70 + echo 'ITEM_ID='$item_id >> $GITHUB_ENV 71 + 72 + - name: Set fields 73 + env: 74 + GH_TOKEN: ${{ steps.bot-token.outputs.token }} 75 + 76 + run: | 77 + gh api graphql -f query=' 78 + mutation ( 79 + $project: ID! 80 + $item: ID! 81 + $status_field: ID! 82 + $status_value: String! 83 + ) { 84 + set_status: updateProjectV2ItemFieldValue(input: { 85 + projectId: $project 86 + itemId: $item 87 + fieldId: $status_field 88 + value: { 89 + singleSelectOptionId: $status_value 90 + } 91 + }) { 92 + projectV2Item { 93 + id 94 + } 95 + } 96 + }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$FIELD_ID_STATUS -f status_value=${{ env.OPTION_ID_STATUS_TRIAGE }} --silent