| Crates.io | git-biance |
| lib.rs | git-biance |
| version | 0.1.2 |
| created_at | 2025-02-11 20:30:13.049018+00 |
| updated_at | 2025-02-21 08:09:26.543499+00 |
| description | A small program that shows and visualizes code contributions in a git repository. |
| homepage | https://github.com/xiaoshihou514/git-biance |
| repository | https://github.com/xiaoshihou514/git-biance |
| max_upload_size | |
| id | 1551952 |
| size | 71,902 |
biance(鞭策,biān cè,spur)is a small rust program that shows and visualizes code contributions in a git repository.
git biance --commits --plot |
git biance --stat --plot |
|---|---|
cargo install git-biance
Usage: git-biance [OPTIONS] [AUTHOR]
Arguments:
[AUTHOR] Specify certain author
Options:
-s, --stat Show total insertions and deletions
-c, --commits Show total commits
-p, --plot Visualize contributions with a graph
-f, --file <FILE>... Show insertions and deletions on single file
-h, --help Print help
-V, --version Print version
The following workflow can be used to achieve automatic spurring effect in merge requests, requires environment variable named CI_AUTOCOMMENTER_API_KEY containing a personal access code:
# Don't forget to change the gitlab instance
biance:
stage: deploy
variables:
GIT_DEPTH: 0
script:
- BIANCE_COMMIT=$(git biance -c | sed ':a; N; $!ba; s/ /%20/g; s/\n/%0A/g')
- BIANCE_STATS=$(find src/main/ -type f | xargs git biance -f | sed ':a; N; $!ba; s/ /%20/g; s/\n/%0A/g')
- BIANCE_MSG=$(echo "Beep%20boop%0A%0A$BIANCE_COMMIT%0A%0A$BIANCE_STATS")
- 'curl --request POST --header "PRIVATE-TOKEN: $CI_AUTOCOMMENTER_API_KEY" "https://your.gitlab.instance.com/api/v4/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/notes?body=$BIANCE_MSG"'
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
I see some names are repeated, what is going on?
git-biance use email to identify users, but shows them by user name. It's likely that some contributors are using git with http, which generates a new email each time they push a commit. One can get the correct output by using git mailmap. To get a list of authors, run:
git log | grep Author | sort | uniq