1- name : ' Project Board Automation'
2- description : ' Automate GitHub Projects with ease'
1+ name : " Project Board Automation"
2+ description : " Automate GitHub Projects with ease"
33inputs :
44 project :
55 description : Project board number
@@ -32,25 +32,31 @@ runs:
3232
3333 - name : Fetch project data
3434 run : |
35+ set -x
3536 gh api graphql -f query='
36- query($org: String!, $num: Int!) {
37- organization(login: $org){
38- projectNext (number: $num) {
37+ query ($org: String!, $num: Int!) {
38+ organization(login: $org) {
39+ projectV2 (number: $num) {
3940 id
4041 fields(first: 20) {
4142 nodes {
42- id
43- name
44- settings
43+ ... on ProjectV2SingleSelectField {
44+ id
45+ name
46+ options {
47+ id
48+ name
49+ }
50+ }
4551 }
4652 }
4753 }
4854 }
4955 }' -f org=$ORG -F num=${{ inputs.project }} > project_data.json
5056
51- echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext .id' project_data.json) >> $GITHUB_ENV
52- echo 'STATUS_FIELD_ID='$(jq -r '.data.organization.projectNext .fields.nodes[] | select(.name == "Status").id' project_data.json) >> $GITHUB_ENV
53- echo 'TODO_OPTION_ID='$(jq -r '.data.organization.projectNext .fields.nodes[] | select(.name == "Status").settings | fromjson .options[] | select(.name=="${{ inputs.todo_status }}").id' project_data.json) >> $GITHUB_ENV
57+ echo 'PROJECT_ID='$(jq -r '.data.organization.projectV2 .id' project_data.json) >> $GITHUB_ENV
58+ echo 'STATUS_FIELD_ID='$(jq -r '.data.organization.projectV2 .fields.nodes[] | select(.name == "Status").id' project_data.json) >> $GITHUB_ENV
59+ echo 'TODO_OPTION_ID='$(jq -r '.data.organization.projectV2 .fields.nodes[] | select(.name == "Status").options[] | select(.name=="${{ inputs.todo_status }}").id' project_data.json) >> $GITHUB_ENV
5460 env :
5561 GITHUB_TOKEN : ${{ inputs.token }}
5662 ORG : ${{ inputs.org }}
@@ -69,15 +75,15 @@ runs:
6975 run : |
7076 item_id="$( gh api graphql -f query='
7177 mutation($project: ID!, $id: ID!) {
72- addProjectNextItem (input: {
78+ addProjectV2ItemById (input: {
7379 projectId: $project,
7480 contentId: $id,
7581 }) {
76- projectNextItem {
82+ item {
7783 id
7884 }
7985 }
80- }' -f project=$PROJECT_ID -f id=$ISSUE_PR_ID --jq '.data.addProjectNextItem.projectNextItem .id')"
86+ }' -f project=$PROJECT_ID -f id=$ISSUE_PR_ID --jq '.data.addProjectV2ItemById.item .id')"
8187
8288 echo 'ITEM_ID='$item_id >> $GITHUB_ENV
8389 env :
@@ -87,22 +93,14 @@ runs:
8793 - name : Set fields on project ticket
8894 run : |
8995 gh api graphql -f query='
90- mutation (
91- $project: ID!
92- $item: ID!
93- $status_field: ID!
94- $status_value: String!
95- ) {
96- updateProjectNextItemField(input: {
97- projectId: $project
98- itemId: $item
99- fieldId: $status_field
100- value: $status_value
101- }) {
102- projectNextItem {
103- id
104- }
105- }
96+ mutation ($project: ID!, $item: ID!, $status_field: ID!, $status_value: String!) {
97+ updateProjectV2ItemFieldValue(
98+ input: {projectId: $project, itemId: $item, fieldId: $status_field, value: {singleSelectOptionId: $status_value}}
99+ ) {
100+ projectV2Item {
101+ id
102+ }
103+ }
106104 }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=$TODO_OPTION_ID
107105 env :
108106 GITHUB_TOKEN : ${{ inputs.token }}
0 commit comments