name: Add Pull Request Labels and Assign to Project on: pull_request_target: types: [opened, closed] jobs: triage: runs-on: ubuntu-latest if: github.event.action == 'opened' steps: - uses: ericcornelissen/labeler@label-based-on-status with: repo-token: ${{ secrets.GITHUB_TOKEN }} assign-to-project: runs-on: ubuntu-latest name: Assign to Project if: github.event.action == 'opened' needs: triage env: MY_GITHUB_TOKEN: ${{ secrets.AUTO_ASSIGN_WORKFLOW_TOKEN }} steps: - id: get-labels name: Get labels run: | labels="$(curl --retry 5 -s https://api.github.com/repos/simple-icons/simple-icons/pulls/${{ github.event.pull_request.number }} | jq '.labels[].name' | tr '\n' ',' | sed -e 's/"//g' -e 's/,$//')" echo "labels=$labels" >> $GITHUB_OUTPUT - id: get-si-members name: Get simple-icons members run: | members="$(curl -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' --retry 5 -s https://api.github.com/orgs/simple-icons/members | jq .[].login | tr '\n' ',' | sed -e 's/"//g' -e 's/,$//')" echo "members=$members" >> $GITHUB_OUTPUT - id: get-linked-issues name: Get linked issue numbers uses: mondeja/pr-linked-issues-action@v2 with: # Lazy linked issues. If one of the lines of the pull request body # matches one of the next contents, the matching issue number will # be added to `issues` output: add_links_by_content: | **Issue:** #{issue_number} **Issue**: #{issue_number} **Close:** #{issue_number} **Close**: #{issue_number} **Closes:** #{issue_number} **Closes**: #{issue_number} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - id: priority-1 name: Assign `icon outdated` pull requests to "Priority 1" uses: srggrs/assign-one-project-github-action@1.3.1 if: contains(steps.get-labels.outputs.labels, 'icon outdated') with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Priority 1 - id: priority-2 name: Assign `new icon` pull requests to "Priority 2" uses: srggrs/assign-one-project-github-action@1.3.1 # the PR has the `new icon` label along with a linked issue and # the opener is not a member of simple-icons organization if: | contains(steps.get-labels.outputs.labels, 'new icon') && join(steps.get-linked-issues.outputs.issues) != '' && contains(steps.get-si-members.outputs.members, github.event.pull_request.user.login) == false with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Priority 2 - id: priority-3 name: Assign `new icon` pull requests by maintainers to "Priority 3" uses: srggrs/assign-one-project-github-action@1.3.1 # the PR has the `new icon` label along with a linked issue and # the opener is a member of the simple-icons organisation if: | contains(steps.get-labels.outputs.labels, 'new icon') && join(steps.get-linked-issues.outputs.issues) != '' && contains(steps.get-si-members.outputs.members, github.event.pull_request.user.login) == true with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Priority 3 - id: priority-4 name: Assign `new icon` pull requests by maintainers without an issue to "Priority 4" uses: srggrs/assign-one-project-github-action@1.3.1 # the PR has the `new icon` label but with no linked issue and # the opener is a member of the simple-icons organisation if: | contains(steps.get-labels.outputs.labels, 'new icon') && join(steps.get-linked-issues.outputs.issues) == '' && contains(steps.get-si-members.outputs.members, github.event.pull_request.user.login) == true with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Priority 4 - name: Assign pull requests to "Unprioritised" uses: srggrs/assign-one-project-github-action@1.3.1 if: | steps.priority-1.conclusion == 'skipped' && steps.priority-2.conclusion == 'skipped' && steps.priority-3.conclusion == 'skipped' && steps.priority-4.conclusion == 'skipped' with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Unprioritised unassign-from-project: runs-on: ubuntu-latest name: Unassign from Project if: | github.event.action != 'opened' && github.event.pull_request.merged == false env: MY_GITHUB_TOKEN: ${{ secrets.AUTO_ASSIGN_WORKFLOW_TOKEN }} steps: - name: Assign closed pull requests to "Completed or Abandoned" uses: srggrs/assign-one-project-github-action@1.3.1 with: project: https://github.com/orgs/simple-icons/projects/2 column_name: Completed or Abandoned