38 lines (36 loc) · 1.8 KB
/
authors.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
name: "authors update"
on:
schedule:
# Run once a week at 00:05 AM UTC on Sunday.
- cron: '5 0 * * 0'
workflow_dispatch:
jobs:
authors_update:
if: github.repository == 'nodejs/node'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0' # This is required to actually get all the authors
- run: "tools/update-authors.js" # Run the AUTHORS tool
- name: "Check for duplicates"
run: |
PATTERN_FILE=`mktemp`;
git diff | egrep '^\+[^+]' | perl -pe 's/^\+(.+?) <.+\n/\1\n/g' > $PATTERN_FILE;
DUPLICATES=`grep -F -f $PATTERN_FILE AUTHORS | cut -d'<' -f1 | sort | uniq -c | sort -n | grep -v '^ *1 ' | perl -pe 's/^ *\d+ / /'`; # Last part here substitues a space at the start of each line
echo 'DUPLICATES<<EOF' >> $GITHUB_ENV
if [ ! -z "${DUPLICATES}" ]; then
echo "The following may be duplicates; consider adding a .mailmap entry for them:" >> $GITHUB_ENV;
echo "${DUPLICATES}" >> $GITHUB_ENV;
fi;
echo 'EOF' >> $GITHUB_ENV; # Each line of duplicates starts with a space, so it won't conflict with 'EOF'
- uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR
env:
GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}
with:
author: Node.js GitHub Bot <github-bot@iojs.org>
body: "Here are some new additions to the AUTHORS file. This is an automatically generated PR by the `authors.yml` GitHub Action, which runs `tools/update-authors.js`.\n\n{{ env.DUPLICATES }}"
branch: "actions/authors-update" # Custom branch *just* for this Action.
commit-message: "meta: update AUTHORS"
labels: meta
title: "meta: update AUTHORS"