Add PR labels based on files changed (#1127)

* Add PR labels based on files changed

* Remove platform code
This commit is contained in:
Jesse Hills 2020-07-13 05:08:44 +12:00 committed by GitHub
parent c52cb7bbad
commit c296b4c348
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 0 deletions

24
.github/workflows/pr-labels.yaml vendored Normal file
View File

@ -0,0 +1,24 @@
name: PR labels
on: [pull_request]
jobs:
pr-label:
runs-on: ubuntu-latest
name: PR label
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- id: pr_labels
run: script/pr-labels ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- uses: octokit/request-action@v2.0.7
if: ${{ steps.pr_labels.outputs.labels != '[""]' }}
with:
route: POST /repos/:repository/issues/:number/labels
number: ${{ github.event.number }}
repository: ${{ github.repository }}
labels: ${{ steps.pr_labels.outputs.labels }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

29
script/pr-labels Executable file
View File

@ -0,0 +1,29 @@
#!/bin/bash
components=()
for c_diff in $(git diff ${1}..${2} --name-only esphome/components); do
base=${c_diff#esphome/components/}
component=`dirname ${base}`
if [[ "${component}" == "." ]]; then
component=${platform}
fi
if [[ ! "${components[@]}" =~ "${component}" ]]; then
components+=($component)
fi
done
labels=()
echo "Components:"
for component in ${components[@]}; do
echo " ${component}"
labels+=("component: $component")
done
echo "Labels: ${labels[@]}"
output=$(printf '%s\n' "${labels[@]}" | jq -R . | jq -c -s .)
echo "::set-output name=labels::${output}"