Merge rust-bitcoin/rust-bitcoin#2365: Add automated labeler job
c6c5f07880
Add automated labeler job (Martin Habovstiak) Pull request description: Rather than modifying the labels manually, which we often forget, we can label the PRs automatically. This will make it easier to search PRs. ACKs for top commit: apoelstra: ACKc6c5f07880
tcharding: ACKc6c5f07880
Tree-SHA512: d3f7ca8c69cc8734d914f871675568ca293e28c3dc7351ee54b9237645204b87d1b47db02863b27d930900ae4b41d6f169f130ed9f4c750d4afbb765921cfb66
This commit is contained in:
commit
8b9c2ae9cc
|
@ -0,0 +1,13 @@
|
||||||
|
ci:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: .github/**
|
||||||
|
test:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: fuzz/**
|
||||||
|
- any-glob-to-any-file: '*/tests/**'
|
||||||
|
- any-glob-to-any-file: 'dep_test'
|
||||||
|
- any-glob-to-any-file: 'contrib/test.sh'
|
||||||
|
- any-glob-to-any-file: '*/contrib/test.sh'
|
||||||
|
doc:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: '**/*.md'
|
|
@ -0,0 +1,26 @@
|
||||||
|
name: Manage PR
|
||||||
|
on:
|
||||||
|
- pull_request_target
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
labeler:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout master
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: master
|
||||||
|
- name: Checkout merge commit
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: merge
|
||||||
|
ref: "refs/pull/${{ github.event.number }}/merge"
|
||||||
|
- name: Generate label config
|
||||||
|
run: cd master && SCAN_DIR=../merge ./contrib/gen_label_config.sh
|
||||||
|
- name: Update labels
|
||||||
|
uses: actions/labeler@v5
|
||||||
|
with:
|
||||||
|
configuration-path: master/.github/labeler.yml
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Generates the label configuration using crates in the repository.
|
||||||
|
# The label configuration is appended to the labeler config file.
|
||||||
|
|
||||||
|
config=.github/labeler.yml
|
||||||
|
|
||||||
|
if [ -n "$SCAN_DIR" ];
|
||||||
|
then
|
||||||
|
scan_dir="$SCAN_DIR"
|
||||||
|
else
|
||||||
|
scan_dir=.
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" '!=' "--force" ] && ! git diff --exit-code "$config";
|
||||||
|
then
|
||||||
|
echo "Error: $config is not committed."
|
||||||
|
echo "Refusing to overwrite it to prevent disaster."
|
||||||
|
echo "Run the script with --force to override this."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
excluded_crates="fuzz|dep_test"
|
||||||
|
|
||||||
|
CRATES="`cd "$scan_dir" && cargo metadata --no-deps --format-version 1 | jq -j -r '.packages | map(.manifest_path | rtrimstr("/Cargo.toml") | ltrimstr("'$PWD'/")) | join(" ")'`"
|
||||||
|
|
||||||
|
for crate in $CRATES;
|
||||||
|
do
|
||||||
|
if echo "$crate" | grep -qE "$excluded_crates";
|
||||||
|
then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "C-$crate:" >> "$config"
|
||||||
|
echo " - changed-files:" >> "$config"
|
||||||
|
echo " - any-glob-to-any-file: $crate/**" >> "$config"
|
||||||
|
done
|
Loading…
Reference in New Issue