Name: cloudposse/github-action-pull-request-labeling
This GitHub Action will label a pull request according to the statuses of its checks.
Create a workflow file (e.g. .github/workflows/github-pr-labeling.yml
) that contains a step that uses: cloudposse/github-action-pull-request-labeling@v1.0.0
.
Here's an example workflow file:
name: status-check-labeling
on:
pull_request:
types: [labeled, unlabeled, opened, synchronize]
jobs:
status-check-labeling:
name: status-check-labeling
runs-on: ubuntu-latest
steps:
- name: status-check-summaries
uses: cloudposse/github-action-pull-request-labeling@v1.0.0
with:
label: "no-plan-changes"
name-contains: "spacelift"
description-contains: "Plan contains no changes"
github-token: ${{ secrets.GITHUB_TOKEN }}
label
: Label to apply to the pull request if its checks meet the desired conditions. (If it needs to be added and does not already exist, the label will be created.)name-contains
: All checks whose names contain this string will be have their statuses tested to see if they contain thedescription-contains
input.description-contains
: All checks whose names contain thename-contains
input will have their descriptions checked to see whether they contain this string.github-token
: Secret token assigned by the GitHub Actions runner. Used for several GitHub API calls.
A label named label
will be applied to a pull request if all of the checks run against that pull request whose names contain the name-contains
string also have descriptions that contain the description-contains
string. If any of the checks on this pull request contain name-contains
in their names but do not have description-contains
in their descriptions, the label will not be applied. Also, if no checks are found whose names contain name-contains
, the label will not be applied.
This event facilitates simpler triage of pull requests on repos that have many pull request checks. The motivating application at Cloud Posse is repos that contains multiple Terraform components and are integrated into clickops workflows with Spacelift. In such a repository, if a pull request could be definitely shown ahead of time to have no effect on any deployed infrastructure, that pull request could potentially be fast-tracked.