From e85ddb2642467e5d3629fbe1631ccd893f091374 Mon Sep 17 00:00:00 2001 From: Thomas Thomassen Date: Wed, 23 Apr 2025 17:18:49 +0200 Subject: [PATCH 1/4] Correct number of closing brackets with opening brackets. --- .github/workflows/close-project-issues.yml | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/close-project-issues.yml b/.github/workflows/close-project-issues.yml index f45e86d..68fbeed 100644 --- a/.github/workflows/close-project-issues.yml +++ b/.github/workflows/close-project-issues.yml @@ -77,32 +77,32 @@ jobs: column_name=${{ github.event.inputs.column_name }} issues=$(gh api graphql -f query=' query ($org: String!, $number: Int!) { - organization(login: $org) { - projectV2(number: $number) { - items(first: 100) { - nodes { - content { - ... on Issue { - number - } + organization(login: $org) { + projectV2(number: $number) { + items(first: 100) { + nodes { + content { + ... on Issue { + number } - fieldValueByName(name: "Status") { - ... on ProjectV2ItemFieldSingleSelectValue { - name - } + } + fieldValueByName(name: "Status") { + ... on ProjectV2ItemFieldSingleSelectValue { + name } } } } } } - }' -f org=$org_name -F number=$project_number --jq ' + }' + -f org=$org_name -F number=$project_number --jq ' [ .data.organization.projectV2.items.nodes[] | select(.fieldValueByName.name == "'"$column_name"'") | .content.number ] | join(" ") - ') + ') echo "issues=$issues" >> $GITHUB_ENV echo "Issues: $issues" From b6d9f2f3f545af7ebdbb03a35e5eb62e129ed57a Mon Sep 17 00:00:00 2001 From: Thomas Thomassen Date: Wed, 23 Apr 2025 17:46:28 +0200 Subject: [PATCH 2/4] Update close-project-issues.yml --- .github/workflows/close-project-issues.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/close-project-issues.yml b/.github/workflows/close-project-issues.yml index 68fbeed..2f0fc2d 100644 --- a/.github/workflows/close-project-issues.yml +++ b/.github/workflows/close-project-issues.yml @@ -95,8 +95,7 @@ jobs: } } } - }' - -f org=$org_name -F number=$project_number --jq ' + }' -f org=$org_name -F number=$project_number --jq ' [ .data.organization.projectV2.items.nodes[] | select(.fieldValueByName.name == "'"$column_name"'") From d09e8268985aba04aae3455e6321418ed7f6620b Mon Sep 17 00:00:00 2001 From: Thomas Thomassen Date: Wed, 23 Apr 2025 18:08:09 +0200 Subject: [PATCH 3/4] Update close-project-issues.yml --- .github/workflows/close-project-issues.yml | 107 +++++++++++++-------- 1 file changed, 65 insertions(+), 42 deletions(-) diff --git a/.github/workflows/close-project-issues.yml b/.github/workflows/close-project-issues.yml index 2f0fc2d..4616a25 100644 --- a/.github/workflows/close-project-issues.yml +++ b/.github/workflows/close-project-issues.yml @@ -8,6 +8,7 @@ on: project_number: description: 'The number of the project' required: true + type: number # Important: Specify the type as number column_name: description: 'The name of the column' required: false @@ -47,21 +48,27 @@ jobs: - name: Get project node ID and title id: get_project_info env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | org_name=${{ env.org_name }} project_number=${{ github.event.inputs.project_number }} - project_info=$(gh api graphql -f query=' - query($org_name: String!, $project_number: Int!) { - organization(login: $org_name) { - projectV2(number: $project_number) { - id - title + project_info=$(gh api graphql \ + -f query=' + query($org_name: String!, $project_number: Int!) { + organization(login: $org_name) { + projectV2(number: $project_number) { + id + title + } } } - }' -f org_name=$org_name -F project_number=$project_number --jq '.data.organization.projectV2') - project_id=$(echo $project_info | jq -r '.id') - project_title=$(echo $project_info | jq -r '.title') + ' \ + -F org_name=$org_name \ + -F number=$project_number \ + --jq '.data.organization.projectV2' + ) + project_id=$(echo "$project_info" | jq -r '.id') + project_title=$(echo "$project_info" | jq -r '.title') echo "project_id=$project_id" >> $GITHUB_ENV echo "project_title=$project_title" >> $GITHUB_ENV echo "Project ID: $project_id" @@ -75,40 +82,46 @@ jobs: org_name=${{ env.org_name }} project_number=${{ github.event.inputs.project_number }} column_name=${{ github.event.inputs.column_name }} - issues=$(gh api graphql -f query=' - query ($org: String!, $number: Int!) { - organization(login: $org) { - projectV2(number: $number) { - items(first: 100) { - nodes { - content { - ... on Issue { - number + issues=$(gh api graphql \ + -f query=' + query ($org: String!, $number: Int!, $columnName: String!) { + organization(login: $org) { + projectV2(number: $number) { + items(first: 100) { + nodes { + content { + ... on Issue { + number + } } - } - fieldValueByName(name: "Status") { - ... on ProjectV2ItemFieldSingleSelectValue { - name + fieldValueByName(name: "Status") { + ... on ProjectV2ItemFieldSingleSelectValue { + name + } } } } } } } - }' -f org=$org_name -F number=$project_number --jq ' + ' \ + -F org=$org_name \ + -F number=$project_number \ + -F columnName=$column_name \ + --jq ' [ .data.organization.projectV2.items.nodes[] - | select(.fieldValueByName.name == "'"$column_name"'") + | select(.fieldValueByName.name == $columnName) | .content.number ] | join(" ") - ') - + ' + ) echo "issues=$issues" >> $GITHUB_ENV echo "Issues: $issues" - name: Create label if it does not exist env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | label=${{ github.event.inputs.fix_label }} dry_run=${{ github.event.inputs.dry_run }} @@ -122,25 +135,35 @@ jobs: - name: Add label to issues env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | label=${{ github.event.inputs.fix_label }} dry_run=${{ github.event.inputs.dry_run }} - for issue in ${{ env.issues }}; do - echo "Add label $label to issue $issue" - if [ "$dry_run" = "false" ]; then - gh issue edit $issue --add-label "$label" - fi - done + issues="${{ env.issues }}" # Correct way to use env variable in bash + if [ -n "$issues" ]; then # Check if issues is not empty + for issue in $issues; do + echo "Add label $label to issue $issue" + if [ "$dry_run" = "false" ]; then + gh issue edit "$issue" --add-label "$label" + fi + done + else + echo "No issues found to label." + fi - name: Close issues env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | dry_run=${{ github.event.inputs.dry_run }} - for issue in ${{ env.issues }}; do - echo "Close issue $issue" - if [ "$dry_run" = "false" ]; then - gh issue close $issue - fi - done + issues="${{ env.issues }}" # Correct way to use env variable + if [ -n "$issues" ]; then # Check if issues is not empty + for issue in $issues; do + echo "Close issue $issue" + if [ "$dry_run" = "false" ]; then + gh issue close "$issue" + fi + done + else + echo "No issues found to close." + fi From 4943b0dc5bb8e1f381c7095d43a22c372ac35913 Mon Sep 17 00:00:00 2001 From: Thomas Thomassen Date: Wed, 23 Apr 2025 18:14:30 +0200 Subject: [PATCH 4/4] Update close-project-issues.yml --- .github/workflows/close-project-issues.yml | 107 ++++++++------------- 1 file changed, 42 insertions(+), 65 deletions(-) diff --git a/.github/workflows/close-project-issues.yml b/.github/workflows/close-project-issues.yml index 4616a25..2f0fc2d 100644 --- a/.github/workflows/close-project-issues.yml +++ b/.github/workflows/close-project-issues.yml @@ -8,7 +8,6 @@ on: project_number: description: 'The number of the project' required: true - type: number # Important: Specify the type as number column_name: description: 'The name of the column' required: false @@ -48,27 +47,21 @@ jobs: - name: Get project node ID and title id: get_project_info env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | org_name=${{ env.org_name }} project_number=${{ github.event.inputs.project_number }} - project_info=$(gh api graphql \ - -f query=' - query($org_name: String!, $project_number: Int!) { - organization(login: $org_name) { - projectV2(number: $project_number) { - id - title - } + project_info=$(gh api graphql -f query=' + query($org_name: String!, $project_number: Int!) { + organization(login: $org_name) { + projectV2(number: $project_number) { + id + title } } - ' \ - -F org_name=$org_name \ - -F number=$project_number \ - --jq '.data.organization.projectV2' - ) - project_id=$(echo "$project_info" | jq -r '.id') - project_title=$(echo "$project_info" | jq -r '.title') + }' -f org_name=$org_name -F project_number=$project_number --jq '.data.organization.projectV2') + project_id=$(echo $project_info | jq -r '.id') + project_title=$(echo $project_info | jq -r '.title') echo "project_id=$project_id" >> $GITHUB_ENV echo "project_title=$project_title" >> $GITHUB_ENV echo "Project ID: $project_id" @@ -82,46 +75,40 @@ jobs: org_name=${{ env.org_name }} project_number=${{ github.event.inputs.project_number }} column_name=${{ github.event.inputs.column_name }} - issues=$(gh api graphql \ - -f query=' - query ($org: String!, $number: Int!, $columnName: String!) { - organization(login: $org) { - projectV2(number: $number) { - items(first: 100) { - nodes { - content { - ... on Issue { - number - } + issues=$(gh api graphql -f query=' + query ($org: String!, $number: Int!) { + organization(login: $org) { + projectV2(number: $number) { + items(first: 100) { + nodes { + content { + ... on Issue { + number } - fieldValueByName(name: "Status") { - ... on ProjectV2ItemFieldSingleSelectValue { - name - } + } + fieldValueByName(name: "Status") { + ... on ProjectV2ItemFieldSingleSelectValue { + name } } } } } } - ' \ - -F org=$org_name \ - -F number=$project_number \ - -F columnName=$column_name \ - --jq ' + }' -f org=$org_name -F number=$project_number --jq ' [ .data.organization.projectV2.items.nodes[] - | select(.fieldValueByName.name == $columnName) + | select(.fieldValueByName.name == "'"$column_name"'") | .content.number ] | join(" ") - ' - ) + ') + echo "issues=$issues" >> $GITHUB_ENV echo "Issues: $issues" - name: Create label if it does not exist env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | label=${{ github.event.inputs.fix_label }} dry_run=${{ github.event.inputs.dry_run }} @@ -135,35 +122,25 @@ jobs: - name: Add label to issues env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | label=${{ github.event.inputs.fix_label }} dry_run=${{ github.event.inputs.dry_run }} - issues="${{ env.issues }}" # Correct way to use env variable in bash - if [ -n "$issues" ]; then # Check if issues is not empty - for issue in $issues; do - echo "Add label $label to issue $issue" - if [ "$dry_run" = "false" ]; then - gh issue edit "$issue" --add-label "$label" - fi - done - else - echo "No issues found to label." - fi + for issue in ${{ env.issues }}; do + echo "Add label $label to issue $issue" + if [ "$dry_run" = "false" ]; then + gh issue edit $issue --add-label "$label" + fi + done - name: Close issues env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} + GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | dry_run=${{ github.event.inputs.dry_run }} - issues="${{ env.issues }}" # Correct way to use env variable - if [ -n "$issues" ]; then # Check if issues is not empty - for issue in $issues; do - echo "Close issue $issue" - if [ "$dry_run" = "false" ]; then - gh issue close "$issue" - fi - done - else - echo "No issues found to close." - fi + for issue in ${{ env.issues }}; do + echo "Close issue $issue" + if [ "$dry_run" = "false" ]; then + gh issue close $issue + fi + done