Skip to content

Commit f8519ec

Browse files
Merge pull request #10007 from ThomasWaldmann/fame-weekly
add a weekly workflow refreshing FAME.md
2 parents ed7ae62 + 6411f15 commit f8519ec

5 files changed

Lines changed: 338 additions & 50 deletions

File tree

‎.github/workflows/fame.yml‎

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Refresh FAME.md and FAME.svg, the contributor summary generated by
2+
# scripts/fame.py.
3+
#
4+
# The script needs the full history (it uses `git blame`), so this checks out
5+
# with fetch-depth 0 and it always looks at master, no matter what triggered it.
6+
# scripts/fame.py rewrites FAME.md only when the numbers actually changed, so a
7+
# quiet week does not produce a pull request that only bumps the date.
8+
#
9+
# The pull request is created with GITHUB_TOKEN, so CI does not run on it - that
10+
# is fine for generated files, but keep it in mind if this workflow ever starts
11+
# touching code.
12+
#
13+
# Merging such a pull request pushes FAME.md and triggers this workflow again;
14+
# that run regenerates the same files, finds no diff and opens nothing, so it
15+
# just costs a minute of runner time.
16+
17+
name: FAME
18+
19+
on:
20+
schedule:
21+
- cron: '17 4 * * 1' # Mondays at 04:17 UTC
22+
push:
23+
branches: [ master ]
24+
paths:
25+
- 'FAME.md' # keep the chart in sync when the table changes
26+
workflow_dispatch: # Allow manual trigger
27+
28+
concurrency:
29+
group: ${{ github.workflow }}
30+
cancel-in-progress: false
31+
32+
permissions:
33+
contents: read
34+
35+
jobs:
36+
fame:
37+
name: Update FAME.md
38+
# Forks would only open pull requests against themselves, so do not bother.
39+
if: github.repository == 'borgbackup/borg'
40+
runs-on: ubuntu-26.04
41+
timeout-minutes: 60
42+
43+
permissions:
44+
contents: write
45+
pull-requests: write
46+
47+
steps:
48+
- uses: actions/checkout@v7
49+
with:
50+
ref: master
51+
fetch-depth: 0 # git blame needs the whole history
52+
53+
- name: Set up Python
54+
uses: actions/setup-python@v7
55+
with:
56+
python-version: '3.14'
57+
58+
- name: Install git-fame
59+
run: |
60+
python -m pip install --upgrade pip
61+
pip install 'git-fame ~= 3.1'
62+
63+
- name: Regenerate FAME.md and FAME.svg
64+
run: python scripts/fame.py
65+
66+
- name: Create pull request
67+
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
68+
with:
69+
add-paths: |
70+
FAME.md
71+
FAME.svg
72+
branch: auto/update-fame
73+
delete-branch: true
74+
commit-message: "FAME.md: update contributor statistics"
75+
title: "FAME.md: update contributor statistics"
76+
body: |
77+
Automatic update of `FAME.md`, generated by `scripts/fame.py` from the
78+
`master` branch with [git-fame](https://github.com/casperdcl/git-fame).
79+
80+
If a contributor shows up twice under different names or e-mail
81+
addresses, fix it in `.mailmap` rather than in `FAME.md` - the file
82+
here is overwritten on every run.

‎FAME.md‎

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Contributors
22

3-
370 people have contributed to Borg, with 10,581 commits in total.
3+
370 people have contributed to Borg, with 10,585 commits in total.
44
Thanks to everyone who helped!
55

6-
Generated on 2026-08-01 by `scripts/fame.py`, which computes the statistics with
6+
![Contributors by commit count](FAME.svg)
7+
8+
Generated on 2026-08-02 by `scripts/fame.py`, which computes the statistics with
79
[git-fame](https://github.com/casperdcl/git-fame), from the `master` branch
810
only - commits that exist solely on other branches or in unmerged pull requests
911
are not counted.
@@ -19,64 +21,64 @@ show up there, so the number understates early contributions. Generated files
1921

2022
| Contributor | Commits | Lines | Files |
2123
|:---|---:|---:|---:|
22-
| Thomas Waldmann | 7,020 | 73,353 | 451 |
23-
| Marian Beermann | 1,140 | 9,016 | 158 |
24-
| Jonas Borgström | 560 | 1,080 | 38 |
25-
| Antoine Beaupré | 285 | 456 | 35 |
24+
| Thomas Waldmann | 7,024 | 75,119 | 454 |
25+
| Marian Beermann | 1,140 | 8,400 | 157 |
26+
| Jonas Borgström | 560 | 1,029 | 38 |
27+
| Antoine Beaupré | 285 | 441 | 33 |
2628
| Mrityunjay Raj | 198 | 7,988 | 102 |
27-
| Andrey Bienkowski | 72 | 243 | 17 |
29+
| Andrey Bienkowski | 72 | 210 | 16 |
2830
| Ted Lawson | 71 | 4,606 | 39 |
29-
| Thalian | 63 | 771 | 33 |
30-
| Martin Hostettler | 46 | 2,589 | 10 |
31-
| Milkey Mouse | 42 | 253 | 14 |
31+
| Thalian | 63 | 594 | 32 |
32+
| Martin Hostettler | 46 | 2,559 | 9 |
33+
| Milkey Mouse | 42 | 248 | 14 |
3234
| Dan Christensen | 40 | 5 | 2 |
3335
| dependabot[bot] | 37 | 46 | 7 |
3436
| Rayyan Ansari | 34 | 91 | 12 |
3537
| Abdel-Rahman | 30 | 4 | 3 |
36-
| Manuel Riel | 28 | 107 | 7 |
37-
| Nehalenniæ Oudin | 26 | 55 | 11 |
38+
| Manuel Riel | 28 | 94 | 6 |
39+
| Nehalenniæ Oudin | 26 | 49 | 11 |
3840
| anarcat | 24 | 34 | 4 |
3941
| Hugo Wallenburg | 23 | 1,189 | 13 |
40-
| Michael Hanselmann | 22 | 151 | 3 |
42+
| Michael Hanselmann | 22 | 71 | 3 |
4143
| Björn Ketelaars | 17 | 33 | 6 |
4244
| SanskritFritz | 17 | 258 | 1 |
43-
| Lee Bousfield | 14 | 169 | 10 |
44-
| Alan Jenkins | 14 | 47 | 2 |
45+
| Lee Bousfield | 14 | 160 | 9 |
46+
| Alan Jenkins | 14 | 38 | 2 |
4547
| Robin Schneider | 13 | 19 | 8 |
4648
| Daniel Rudolf | 13 | 230 | 14 |
47-
| Jürg Rast | 12 | 78 | 11 |
48-
| Elmar Hoffmann | 12 | 98 | 9 |
49-
| Ronny Pfannschmidt | 12 | 22 | 4 |
49+
| Jürg Rast | 12 | 73 | 11 |
50+
| Elmar Hoffmann | 12 | 90 | 6 |
51+
| Ronny Pfannschmidt | 12 | 20 | 4 |
5052
| mh4ckt3mh4ckt1c4s | 11 | 0 | 0 |
5153
| Teemu Toivanen | 10 | 16 | 2 |
5254
| Lauri Niskanen | 10 | 5 | 2 |
5355
| finefoot | 10 | 18 | 3 |
54-
| James Buren | 10 | 10 | 2 |
56+
| James Buren | 10 | 2 | 2 |
5557
| Per Guth | 9 | 1 | 1 |
5658
| rugk | 9 | 13 | 5 |
57-
| Ed Blackman | 9 | 14 | 3 |
59+
| Ed Blackman | 9 | 13 | 3 |
5860
| Carlo Teubner | 9 | 3 | 3 |
59-
| Emmo Emminghaus | 9 | 87 | 11 |
61+
| Emmo Emminghaus | 9 | 80 | 10 |
6062
| Josh Soref | 8 | 3 | 3 |
6163
| Jakob Schnitzer | 8 | 35 | 1 |
6264
| Gianfranco Costamagna | 7 | 10 | 6 |
63-
| Frank Sachsenheim | 7 | 3 | 1 |
65+
| Frank Sachsenheim | 7 | 2 | 1 |
6466
| Hartmut Goebel | 7 | 0 | 0 |
6567
| Michael Deyaso | 6 | 170 | 14 |
6668
| Alf Mikula | 6 | 19 | 1 |
6769
| William D. Jones | 6 | 250 | 6 |
68-
| Felix Schwarz | 6 | 5 | 2 |
69-
| Peter Gerber | 6 | 105 | 10 |
70+
| Felix Schwarz | 6 | 4 | 2 |
71+
| Peter Gerber | 6 | 103 | 9 |
7072
| Alexander-N | 6 | 0 | 0 |
7173
| Paul D | 5 | 185 | 46 |
72-
| Mark Edgington | 5 | 11 | 3 |
74+
| Mark Edgington | 5 | 10 | 3 |
7375
| Dominik Stadler | 5 | 77 | 1 |
7476
| infectormp | 5 | 18 | 2 |
7577
| remyabel | 5 | 25 | 3 |
76-
| Alexander 'Leo' Bergolth | 5 | 26 | 3 |
77-
| Simon Frei | 5 | 213 | 3 |
78+
| Alexander 'Leo' Bergolth | 5 | 24 | 3 |
79+
| Simon Frei | 5 | 174 | 3 |
7880
| elandorr | 5 | 40 | 3 |
79-
| step21 | 5 | 2 | 2 |
81+
| step21 | 5 | 1 | 1 |
8082
| Radu Ciorba | 5 | 0 | 0 |
8183
| Suryansh Pal | 4 | 36 | 9 |
8284
| 8bit | 4 | 30 | 5 |
@@ -92,7 +94,7 @@ show up there, so the number understates early contributions. Generated files
9294
| Artem Sheremet | 4 | 10 | 1 |
9395
| Narendra Vardi | 4 | 3 | 1 |
9496
| Alexander Pyhalov | 4 | 0 | 0 |
95-
| Will | 3 | 22 | 4 |
97+
| Will | 3 | 21 | 4 |
9698
| Lukas Fleischer | 3 | 23 | 2 |
9799
| Daniel Reichelt | 3 | 25 | 5 |
98100
| Stephen | 3 | 10 | 2 |
@@ -106,7 +108,7 @@ show up there, so the number understates early contributions. Generated files
106108
| Michael Gajda | 3 | 23 | 2 |
107109
| jungle-boogie | 3 | 13 | 1 |
108110
| Thomas Harold | 3 | 1 | 1 |
109-
| Gregor Kleen | 3 | 10 | 4 |
111+
| Gregor Kleen | 3 | 8 | 3 |
110112
| kmq | 3 | 15 | 1 |
111113
| Luke Dashjr | 3 | 4 | 1 |
112114
| Divyesh | 3 | 1 | 1 |
@@ -134,7 +136,7 @@ show up there, so the number understates early contributions. Generated files
134136
| Ioannis Cherouvim | 2 | 32 | 2 |
135137
| AJ Jordan | 2 | 2 | 1 |
136138
| Markus Engelbrecht | 2 | 3 | 1 |
137-
| Thomas Portmann | 2 | 257 | 5 |
139+
| Thomas Portmann | 2 | 206 | 5 |
138140
| Leo Famulari | 2 | 1 | 1 |
139141
| Fabian Fröhlich | 2 | 4 | 1 |
140142
| Andreas Gruhler | 2 | 3 | 1 |
@@ -143,7 +145,7 @@ show up there, so the number understates early contributions. Generated files
143145
| Kurt Yoder | 2 | 8 | 1 |
144146
| Jonas Schäfer | 2 | 13 | 1 |
145147
| a1346054 | 2 | 4 | 3 |
146-
| Sophie Herold | 2 | 3 | 2 |
148+
| Sophie Herold | 2 | 2 | 2 |
147149
| ReethuVinta | 2 | 20 | 2 |
148150
| textshell | 2 | 1 | 1 |
149151
| Saurav Sachidanand | 2 | 2 | 1 |
@@ -153,7 +155,7 @@ show up there, so the number understates early contributions. Generated files
153155
| Matthew Glazar | 2 | 18 | 3 |
154156
| Max-Julian Pogner | 2 | 15 | 1 |
155157
| Atharva Varpe | 2 | 23 | 1 |
156-
| Lapinot | 2 | 30 | 4 |
158+
| Lapinot | 2 | 24 | 4 |
157159
| Soumik Dutta | 2 | 85 | 3 |
158160
| Eric Wolf | 2 | 51 | 4 |
159161
| snsmac | 2 | 6 | 2 |
@@ -192,9 +194,9 @@ show up there, so the number understates early contributions. Generated files
192194
| Daniel Dent | 1 | 2 | 1 |
193195
| Lars K.W. Gohlke | 1 | 1 | 1 |
194196
| Kevin Yin | 1 | 3 | 1 |
195-
| Benedikt Seidl | 1 | 117 | 2 |
196197
| Eddie Carswell | 1 | 4 | 1 |
197198
| vancheese | 1 | 28 | 8 |
199+
| Benedikt Seidl | 1 | 116 | 1 |
198200
| Michael Bauer | 1 | 2 | 1 |
199201
| Aleksey Korol | 1 | 95 | 1 |
200202
| Coenraad Loubser | 1 | 1 | 1 |
@@ -236,7 +238,7 @@ show up there, so the number understates early contributions. Generated files
236238
| Stefan Majewsky | 1 | 1 | 1 |
237239
| Atemu | 1 | 11 | 2 |
238240
| Dominik Tugend | 1 | 3 | 1 |
239-
| Reiko Asakura | 1 | 12 | 2 |
241+
| Reiko Asakura | 1 | 11 | 2 |
240242
| Mher Kazandjian | 1 | 6 | 1 |
241243
| Mike | 1 | 23 | 1 |
242244
| Ceesjan Luiten | 1 | 1 | 1 |
@@ -247,9 +249,8 @@ show up there, so the number understates early contributions. Generated files
247249
| Jim Paris | 1 | 2 | 1 |
248250
| vhadzhiev | 1 | 2 | 1 |
249251
| Tarrailt | 1 | 371 | 8 |
250-
| Romain Vimont | 1 | 4 | 3 |
251-
| Sam H | 1 | 27 | 2 |
252-
| Leo Antunes | 1 | 8 | 1 |
252+
| Sam H | 1 | 24 | 2 |
253+
| Leo Antunes | 1 | 5 | 1 |
253254
| Matt Van Horn | 1 | 1 | 1 |
254255
| Mike Mason | 1 | 38 | 3 |
255256
| edvatar | 1 | 16 | 2 |
@@ -258,18 +259,16 @@ show up there, so the number understates early contributions. Generated files
258259
| nyuszika7h | 1 | 3 | 1 |
259260
| Divyansh Singh | 1 | 1 | 1 |
260261
| Phil Kulin | 1 | 4 | 1 |
261-
| Félix Sipma | 1 | 14 | 1 |
262-
| Graham Stockton | 1 | 13 | 1 |
262+
| Félix Sipma | 1 | 13 | 1 |
263+
| Graham Stockton | 1 | 7 | 1 |
263264
| Peter Zangerl | 1 | 1 | 1 |
264265
| lexa-a | 1 | 31 | 1 |
265266
| Nikolaus Rath | 1 | 7 | 1 |
266-
| axapaxa | 1 | 117 | 2 |
267-
| Swanand01 | 1 | 1 | 1 |
267+
| axapaxa | 1 | 105 | 2 |
268268
| Abhijeet | 1 | 1 | 1 |
269-
| Dark Dragon | 1 | 7 | 1 |
270-
| Emil M George | 1 | 2 | 1 |
269+
| Dark Dragon | 1 | 6 | 1 |
270+
| Emil M George | 1 | 1 | 1 |
271271
| Hauke Rehfeld | 1 | 1 | 1 |
272-
| Henry-Joseph Audéoud | 1 | 1 | 1 |
273272
| Ivan Shapovalov | 1 | 1 | 1 |
274273
| Zhou Qiankang | 1 | 3 | 1 |
275274
| Adam Kouse | 1 | 0 | 0 |
@@ -304,6 +303,7 @@ show up there, so the number understates early contributions. Generated files
304303
| Flachz | 1 | 0 | 0 |
305304
| Florian Klink | 1 | 0 | 0 |
306305
| Hans-Peter Jansen | 1 | 0 | 0 |
306+
| Henry-Joseph Audéoud | 1 | 0 | 0 |
307307
| Jakub Wilk | 1 | 0 | 0 |
308308
| Jan | 1 | 0 | 0 |
309309
| Jens Rantil | 1 | 0 | 0 |
@@ -345,9 +345,11 @@ show up there, so the number understates early contributions. Generated files
345345
| RR | 1 | 0 | 0 |
346346
| Ricardo M. Correia | 1 | 0 | 0 |
347347
| Roberto Polli | 1 | 0 | 0 |
348+
| Romain Vimont | 1 | 0 | 0 |
348349
| Ruben Rodriguez | 1 | 0 | 0 |
349350
| Sebastiaan Lokhorst | 1 | 0 | 0 |
350351
| Serghei Iakovlev | 1 | 0 | 0 |
352+
| Swanand01 | 1 | 0 | 0 |
351353
| Thiago Macieira | 1 | 0 | 0 |
352354
| Thomas Deutschmann | 1 | 0 | 0 |
353355
| Thomas Schwinge | 1 | 0 | 0 |

‎FAME.svg‎

Lines changed: 81 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)