diff --git a/.github/workflows/pr-auto-label.yml b/.github/workflows/pr-auto-label.yml new file mode 100644 index 0000000000..14be843c0a --- /dev/null +++ b/.github/workflows/pr-auto-label.yml @@ -0,0 +1,40 @@ +name: "Pull Request Labeler" +on: +- pull_request_target + +jobs: + sync: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Sync labels with closing issues + run: | + owner="pymc-devs" + name="pymc" + pr_number=${{ github.event.pull_request.number }} + + labels=$(gh api graphql --paginate -F number=$pr_number -F owner=$owner -F name=$name -f query=' + query($endCursor: String, $owner: String!, $name: String!, $number: Int!) { + repository(owner: $owner, name: $name) { + pullRequest(number: $number) { + closingIssuesReferences(first: 10, after: $endCursor) { + nodes { + labels(first: 10) { + nodes { + name + } + } + } + } + } + } + } + ' --jq '.data.repository.pullRequest.closingIssuesReferences.nodes | map(.labels.nodes | map(.name)) | flatten | unique | join(",")') + + gh pr edit $pr_number --add-label "$labels" + env: + GH_TOKEN: ${{ github.token }}