@@ -19,20 +19,28 @@ set -o pipefail
1919# # - project (all)
2020
2121GH_ORG=${GH_ORG:- ' kubernetes' }
22- PROJECT_NUMBER=${PROJECT_NUMBER:- ' 82' }
22+ ISSUES_PROJECT_NUMBER=${ISSUES_PROJECT_NUMBER:- ' 82' }
23+ PRS_PROJECT_NUMBER=${PRS_PROJECT_NUMBER:- ' 99' }
2324
2425echo " GH_ORG=${GH_ORG} "
2526
26- # Get project ID
27- project_id=" $( gh api graphql -f query='
27+ function get_project_id_from_number() {
28+ project_id=" $( gh api graphql -f query='
2829 query($org: String!, $number: Int!) {
2930 organization(login: $org) {
3031 projectV2(number: $number) {
3132 id
3233 }
3334 }
34- }' -f org=${GH_ORG} -F number=${PROJECT_NUMBER} --jq ' .data.organization.projectV2.id' ) "
35- echo " project id: ${project_id} "
35+ }' -f org=" ${GH_ORG} " -F number=" $1 " --jq ' .data.organization.projectV2.id' ) "
36+ echo " $project_id "
37+ }
38+
39+ # Get project ID
40+ issues_project_id=$( get_project_id_from_number " $ISSUES_PROJECT_NUMBER " )
41+ echo " project id for issues (number $ISSUES_PROJECT_NUMBER ): ${issues_project_id} "
42+ prs_project_id=$( get_project_id_from_number " $PRS_PROJECT_NUMBER " )
43+ echo " project id for prs (number $PRS_PROJECT_NUMBER ): ${prs_project_id} "
3644
3745# Get list of repos in the org
3846repos_json=" $( gh api graphql --paginate -f query='
@@ -50,7 +58,7 @@ repos_json="$(gh api graphql --paginate -f query='
5058 }
5159 }
5260 }
53- }' -f org=${GH_ORG} ) "
61+ }' -f org=" ${GH_ORG} " ) "
5462
5563repos=" $( jq " .data.viewer.organization.repositories.nodes[].name" <<< " $repos_json" | tr -d ' "' ) "
5664
7179 }
7280 }
7381 }
74- }' -f org=${GH_ORG} -f repo=${repo} ) "
82+ }' -f org=" ${GH_ORG} " -f repo=" ${repo} " ) "
7583
7684 num_issues=$( jq " .data.repository.issues.nodes | length" <<< " $issues_json" )
7785 echo " found ${num_issues} in repo"
7886
79- if [ $num_issues -gt 0 ]; then
87+ if [ " $num_issues " -gt 0 ]; then
8088 range=$(( num_issues - 1 ))
8189 for i in $( seq 0 $range )
8290 do
92100 id
93101 }
94102 }
95- }' -f project=${project_id} -f issue=" ${issue_id} " --jq .data.addProjectV2ItemById.item.id > /dev/null
103+ }' -f project=" ${issues_project_id} " -f issue=" ${issue_id} " --jq .data.addProjectV2ItemById.item.id > /dev/null
104+ done
105+ fi
106+
107+ echo " Looking for PRs in ${GH_ORG} /${repo} "
108+ # TODO: paginate this query
109+ prs_json=" $( gh api graphql -f query='
110+ query($org: String!, $repo: String!) {
111+ repository(owner: $org, name: $repo) {
112+ pullRequests(last: 100, labels: ["sig/Windows"], states: OPEN) {
113+ totalCount
114+ nodes {
115+ id
116+ number
117+ title
118+ }
119+ }
120+ }
121+ }' -f org=" ${GH_ORG} " -f repo=" ${repo} " ) "
122+
123+ num_prs=$( jq " .data.repository.pullRequests.nodes | length" <<< " $prs_json" )
124+ echo " found ${num_prs} in repo"
125+
126+ if [ " $num_prs " -gt 0 ]; then
127+ range=$(( num_prs - 1 ))
128+ for i in $( seq 0 $range )
129+ do
130+ pr_id=$( jq " .data.repository.pullRequests.nodes[$i ].id" <<< " $prs_json" )
131+ pr_title=$( jq " .data.repository.pullRequests.nodes[$i ].title" <<< " $prs_json" )
132+ pr_number=$( jq " .data.repository.pullRequests.nodes[$i ].number" <<< " $prs_json" )
133+ echo " adding ${pr_number} - ${pr_title} "
134+
135+ gh api graphql -f query='
136+ mutation($project:ID!, $pr:ID!) {
137+ addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) {
138+ item {
139+ id
140+ }
141+ }
142+ }' -f project=" ${prs_project_id} " -f pr=" ${pr_id} " --jq .data.addProjectV2ItemById.item.id > /dev/null
96143 done
97144 fi
98145done
0 commit comments