diff --git a/.github/workflows/check-author-issues.yml b/.github/workflows/check-author-issues.yml index 487a6688a70..18078b7eb0d 100644 --- a/.github/workflows/check-author-issues.yml +++ b/.github/workflows/check-author-issues.yml @@ -10,38 +10,38 @@ jobs: issues: write runs-on: ubuntu-latest steps: - - name: check author issue assignment choice - run: | + - name: check author issue assignment choice + run: | CHOICE=$(echo "${{ github.event.issue.body }}" | grep -A 3 "Do you want to work on this issue?\(\s*\)" | ( grep -oiE "yes" || echo "No" )) echo "CHOICE=$CHOICE" >> $GITHUB_ENV - - name: check if issue author has assigned issues - if: env.CHOICE == 'Yes' - id: check-assignee - run: | - ISSUE_AUTHOR=${{ github.event.issue.user.login }} - ISSUES=$(curl \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - -s "https://api.github.com/search/issues?q=repo:${{ github.repository }}+is:open+is:issue+assignee:$ISSUE_AUTHOR" | jq .total_count) - echo "issue author $ISSUE_AUTHOR" - echo "has_issues=$(test $ISSUES -gt 0 && echo true || echo false)" >> $GITHUB_OUTPUT - - - name: Update issue if author has assigned issues - if: steps.check-assignee.outputs.has_issues == 'true' + - name: check if issue author has assigned issues + if: env.CHOICE == 'Yes' + id: check-assignee run: | - ISSUE_AUTHOR=${{ github.event.issue.user.login }} - ISSUE_NUMBER=${{ github.event.issue.number }} - ISSUE_URL="https://github.com/$GITHUB_REPOSITORY/issues/$ISSUE_NUMBER" - ASSIGNED_ISSUES_URL="https://github.com/$GITHUB_REPOSITORY/issues?q=is%3Aopen+is%3Aissue+assignee%3A$ISSUE_AUTHOR" - UPDATE_TEXT="ℹ️ **$ISSUE_AUTHOR** has some opened assigned issues: 🔧[View assigned issues]($ASSIGNED_ISSUES_URL)" - OLD_BODY="${{ github.event.issue.body }}" - BODY=$(jq --arg old_body "$OLD_BODY" --arg update_text "$UPDATE_TEXT" -n '{ body: ($old_body + "\n\n" + $update_text) }') - curl -L \ - -X PATCH \ + ISSUE_AUTHOR=${{ github.event.issue.user.login }} + ISSUES=$(curl \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/repos/$GITHUB_REPOSITORY/issues/$ISSUE_NUMBER \ - -s -d "$BODY" + -s "https://api.github.com/search/issues?q=repo:${{ github.repository }}+is:open+is:issue+assignee:$ISSUE_AUTHOR" | jq .total_count) + echo "issue author $ISSUE_AUTHOR" + echo "has_issues=$(test $ISSUES -gt 0 && echo true || echo false)" >> $GITHUB_OUTPUT + + - name: Update issue if author has assigned issues + if: steps.check-assignee.outputs.has_issues == 'true' + run: | + ISSUE_AUTHOR=${{ github.event.issue.user.login }} + ISSUE_NUMBER=${{ github.event.issue.number }} + ISSUE_URL="https://github.com/$GITHUB_REPOSITORY/issues/$ISSUE_NUMBER" + ASSIGNED_ISSUES_URL="https://github.com/$GITHUB_REPOSITORY/issues?q=is%3Aopen+is%3Aissue+assignee%3A$ISSUE_AUTHOR" + UPDATE_TEXT="ℹ️ **$ISSUE_AUTHOR** has some opened assigned issues: 🔧[View assigned issues]($ASSIGNED_ISSUES_URL)" + OLD_BODY="${{ github.event.issue.body }}" + BODY=$(jq --arg old_body "$OLD_BODY" --arg update_text "$UPDATE_TEXT" -n '{ body: ($old_body + "\n\n" + $update_text) }') + curl -L \ + -X PATCH \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/$GITHUB_REPOSITORY/issues/$ISSUE_NUMBER \ + -s -d "$BODY"