Merge pull request #82 from Cielquan/pre-commit-ci-update-config #57
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Update AUTHORS.rst | |
# What this workflow does: | |
# 1. Update the AUTHORS.rst file | |
# 2. Git commit and push the file if there are changes. | |
on: # yamllint disable-line rule:truthy | |
workflow_dispatch: | |
push: | |
tags: | |
- "!*" | |
branches: | |
- main | |
- "test-me-*" | |
jobs: | |
update-authors: | |
name: Update AUTHORS.rst file | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v3 | |
- name: Update AUTHORS.rst file | |
shell: python | |
run: | | |
import subprocess | |
git_authors = subprocess.run( | |
["git", "log", "--format=%aN <%aE>"], capture_output=True, check=True | |
).stdout.decode() | |
skip_list = ( | |
"Christian Riedel", | |
"dependabot", | |
"pre-commit-ci", | |
"github-action", | |
"GitHub Actions", | |
) | |
authors = [ | |
author | |
for author in set(git_authors.strip().split("\n")) | |
if not author.startswith(skip_list) | |
] | |
authors.sort() | |
file_head = ( | |
".. This file is automatically generated/updated by a github actions workflow.\n" | |
".. Every manual change will be overwritten on push to main.\n" | |
".. You can find it here: ``.github/workflows/update-authors.yaml``\n" | |
".. For more information see " | |
"`https://github.com/rstcheck/rstcheck/graphs/contributors`\n\n" | |
"Author\n" | |
"------\n" | |
"Christian Riedel <[email protected]>\n\n" | |
"Additional contributions by (sorted by name)\n" | |
"--------------------------------------------\n" | |
) | |
with open("AUTHORS.rst", "w") as authors_file: | |
authors_file.write(file_head) | |
if len(authors) > 0: | |
authors_file.write("- ") | |
authors_file.write("\n- ".join(authors)) | |
authors_file.write("\n") | |
- name: Check if diff | |
continue-on-error: true | |
run: > | |
git diff --exit-code AUTHORS.rst && | |
(echo "### No update" && exit 1) || (echo "### Commit update") | |
- uses: EndBug/add-and-commit@v9 | |
name: Commit and push if diff | |
if: success() | |
with: | |
add: AUTHORS.rst | |
message: Update AUTHORS.rst file with new author(s) | |
author_name: GitHub Actions | |
author_email: [email protected] | |
committer_name: GitHub Actions | |
committer_email: [email protected] | |
push: true |