feat: CI to create CONTRIBUTORS.md
file
Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
parent
8888bf2d60
commit
ce566ada27
3 changed files with 68 additions and 2 deletions
30
.forgejo/workflows/contributors.yml
Normal file
30
.forgejo/workflows/contributors.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
name: Update Contributors
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
update_contributors:
|
||||
name: Update Contributors
|
||||
runs-on: debian
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: master
|
||||
fetch-depth: 0
|
||||
- name: Install just
|
||||
run: |
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ./bin
|
||||
- name: Update Contributors
|
||||
run: |
|
||||
./bin/just contributors
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git config user.name forgejo-actions
|
||||
git config user.email forgejo-actions@noreply.localhost
|
||||
git add CONTRIBUTORS.md
|
||||
git commit -m "Update CONTRIBUTORS.md"
|
||||
git push
|
||||
else
|
||||
echo "No changes to CONTRIBUTORS.md"
|
||||
fi
|
38
Justfile
38
Justfile
|
@ -5,7 +5,7 @@
|
|||
# - just (Of course) <https://github.com/casey/just>
|
||||
# - cargo (For the build and tests) <https://doc.rust-lang.org/cargo/getting-started/installation.html>
|
||||
|
||||
set shell := ["/usr/bin/bash", "-c"]
|
||||
set shell := ["/usr/bin/env", "bash", "-c"]
|
||||
|
||||
JUST_EXECUTABLE := "just -u -f " + justfile()
|
||||
header := "Available tasks:\n"
|
||||
|
@ -33,5 +33,41 @@ run:
|
|||
docker-compose up -d db
|
||||
RUST_LOG=debug cargo run -p oxidetalis -- --config config.toml
|
||||
|
||||
# Generate the contributors list from the git log
|
||||
# then add it to the CONTRIBUTORS file
|
||||
contributors:
|
||||
#! /usr/bin/env bash
|
||||
maintainers="- Awiteb <a@4rs.nl>\n- Amjad Alsharafi <me@amjad.alsharafi.dev>"
|
||||
reviewers=`git log --pretty=format:"%b" | grep -i "Reviewed-by" | sed 's/Reviewed-by: /- /' | sort | uniq`
|
||||
reporters=`git log --pretty=format:"%b" | grep -i "Reported-by" | sed 's/Reported-by: /- /' | sort | uniq`
|
||||
suggesters=`git log --pretty=format:"%b" | grep -i "Suggested-by" | sed 's/Suggested-by: /- /' | sort | uniq`
|
||||
helpers=`git log --pretty=format:"%b" | grep -i "Helped-by" | sed 's/Helped-by: /- /' | sort | uniq`
|
||||
authors=`git log --pretty=format:"- %an <%ae>" | sort | uniq | grep -v "actions"`
|
||||
co_authors=`git log --pretty=format:"%b" | grep -i "Co-authored-by" | sed 's/Co-authored-by: /- /' | sort | uniq`
|
||||
contributors_count=`echo -e "${maintainers}\n${authors}\n${co_authors}\n${reviewers}\n${reporters}\n${suggesters}\n${helpers}" | grep -Ev '^$' | sort | uniq | wc -l`
|
||||
footer="Oxidetalis Homeserver currently has ${contributors_count} contributors!\n\nInterested in becoming a contributor? Read the [CONTRIBUTING.md](CONTRIBUTING.md) file to get started."
|
||||
|
||||
file="# Contributors\nA heartfelt thank you to all the contributors who have helped make Oxidetalis Homeserver better. Below is a list of the contributors who have played a crucial role in the development and improvement of Oxidetalis Homeserver.\n\n## Maintainers\nMaintainers are responsible for overseeing Oxidetalis, keeping it up to date, and ensuring it runs smoothly.\n\n${maintainers}"
|
||||
if [ -n "$authors" ]; then
|
||||
file="${file}\n\n## Code Authors\nCode authors have written the code for Oxidetalis.\n\n${authors}"
|
||||
fi
|
||||
if [ -n "$co_authors" ]; then
|
||||
file="${file}\n${co_authors}"
|
||||
fi
|
||||
if [ -n "$reviewers" ]; then
|
||||
file="${file}\n\n## Reviewers\nCode reviewers have reviewed the code and provided feedback, suggestions, and improvements.\n\n${reviewers}"
|
||||
fi
|
||||
if [ -n "$reporters" ]; then
|
||||
file="${file}\n\n## Bug Reporters\nBug reporters have identified and reported bugs in Oxidetalis, helping to improve its quality.\n\n${reporters}"
|
||||
fi
|
||||
if [ -n "$suggesters" ]; then
|
||||
file="${file}\n\n## Feature Suggesters\nFeature suggesters have proposed new features to enhance Oxidetalis.\n\n${suggesters}"
|
||||
fi
|
||||
if [ -n "$helpers" ]; then
|
||||
file="${file}\n\n## Helpers\nHelpers have contributed in various ways that do not involve writing code, such as providing feedback, suggestions, and improvements.\n\n${helpers}"
|
||||
fi
|
||||
file="${file}\n\n---\n${footer}"
|
||||
echo -e "${file}" | fmt -sw 80 > "CONTRIBUTORS.md"
|
||||
|
||||
[private]
|
||||
alias r := run
|
||||
|
|
|
@ -77,7 +77,7 @@ docker-compose up -d
|
|||
|
||||
## Contributing
|
||||
For information on how to contribute to the project, please see the
|
||||
[CONTRIBUTING.md](./CONTRIBUTING.md) file.
|
||||
[CONTRIBUTING.md](./CONTRIBUTING.md) file. You can see the list of contributors in the [CONTRIBUTORS.md](./CONTRIBUTORS.md) file.
|
||||
|
||||
## Repository mirrors
|
||||
- [Codeberg](https://codeberg.org/awiteb/oxidetalis)
|
||||
|
|
Loading…
Reference in a new issue