| # Actions that should occur when a GitHub issue is assigned. | |
| # | |
| # Currently this will remove the `state:needs-owner` label when the issue is assigned to an owner. | |
| # | |
| # Copyright (c) Microsoft Corporation. | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent | |
| name: React to Issue Assignment | |
| on: | |
| issues: | |
| types: assigned | |
| jobs: | |
| adjust-labels: | |
| name: Adjust Issue Labels | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| issues: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Remove Labels | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # All labels here will be removed if present in the issue | |
| LABELS_TO_REMOVE=("state:needs-owner") | |
| # Gather issue context information | |
| ISSUE_NUMBER=$(jq --raw-output .issue.number "$GITHUB_EVENT_PATH") | |
| OWNER=$(jq --raw-output .repository.owner.login "$GITHUB_EVENT_PATH") | |
| REPO=$(jq --raw-output .repository.name "$GITHUB_EVENT_PATH") | |
| LABELS=$(curl -s \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER/labels | jq -r '.[].name') | |
| # Remove labels | |
| for LABEL in "${LABELS_TO_REMOVE[@]}"; do | |
| if echo "$LABELS" | grep -q "$LABEL"; then | |
| curl -X DELETE \ | |
| -s \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "Authorization: Bearer $GITHUB_TOKEN" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER/labels/"$LABEL" > /dev/null | |
| echo "$LABEL removed from issue #$ISSUE_NUMBER" | |
| else | |
| echo "$LABEL not found on issue #$ISSUE_NUMBER" | |
| fi | |
| done |