mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-07-13 09:32:26 +03:00
Merge pull request #2734 from pydanny/auto-generate-contributors
This commit is contained in:
commit
5c80b412c6
56
.github/CONTRIBUTORS-template.md
vendored
Normal file
56
.github/CONTRIBUTORS-template.md
vendored
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# Contributors
|
||||||
|
|
||||||
|
## Core Developers
|
||||||
|
|
||||||
|
These contributors have commit flags for the repository, and are able to
|
||||||
|
accept and merge pull requests.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Github</th>
|
||||||
|
<th>Twitter</th>
|
||||||
|
</tr>
|
||||||
|
{%- for contributor in core_contributors %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ contributor.name }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/{{ contributor.github_login }}">{{ contributor.github_login }}</a>
|
||||||
|
</td>
|
||||||
|
<td>{{ contributor.twitter_username }}</td>
|
||||||
|
</tr>
|
||||||
|
{%- endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
*Audrey is also the creator of Cookiecutter. Audrey and Daniel are on
|
||||||
|
the Cookiecutter core team.*
|
||||||
|
|
||||||
|
## Other Contributors
|
||||||
|
|
||||||
|
Listed in alphabetical order.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Github</th>
|
||||||
|
<th>Twitter</th>
|
||||||
|
</tr>
|
||||||
|
{%- for contributor in other_contributors %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ contributor.name }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/{{ contributor.github_login }}">{{ contributor.github_login }}</a>
|
||||||
|
</td>
|
||||||
|
<td>{{ contributor.twitter_username }}</td>
|
||||||
|
</tr>
|
||||||
|
{%- endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### Special Thanks
|
||||||
|
|
||||||
|
The following haven't provided code directly, but have provided
|
||||||
|
guidance and advice.
|
||||||
|
|
||||||
|
- Jannis Leidel
|
||||||
|
- Nate Aune
|
||||||
|
- Barry Morrison
|
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
[//]: # (Before you proceed:)
|
[//]: # (Before you proceed:)
|
||||||
|
|
||||||
[//]: # (1. Make sure to add yourself to `CONTRIBUTORS.rst` through this PR provided you're contributing here for the first time)
|
[//]: # (- Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing)
|
||||||
[//]: # (2. Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing)
|
[//]: # (- If you're adding a new option, please make sure that tests/test_cookiecutter_generation.py is updated accordingly)
|
||||||
|
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
@ -11,15 +11,11 @@
|
||||||
[//]: # (What's it you're proposing?)
|
[//]: # (What's it you're proposing?)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Rationale
|
## Rationale
|
||||||
|
|
||||||
[//]: # (Why does the project need that?)
|
[//]: # (Why does the project need that?)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Use case(s) / visualization(s)
|
## Use case(s) / visualization(s)
|
||||||
|
|
||||||
[//]: # ("Better to see something once than to hear about it a thousand times.")
|
[//]: # ("Better to see something once than to hear about it a thousand times.")
|
||||||
|
|
1031
.github/contributors.json
vendored
Normal file
1031
.github/contributors.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
30
.github/workflows/update-contributors.yml
vendored
Normal file
30
.github/workflows/update-contributors.yml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
name: Update Contributors
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
- name: Update list
|
||||||
|
run: python scripts/update_contributors.py
|
||||||
|
|
||||||
|
- name: Commit changes
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: Update Contributors
|
||||||
|
file_pattern: CONTRIBUTORS.md .github/contributors.json
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -214,7 +214,6 @@ tags
|
||||||
[Ii]nclude
|
[Ii]nclude
|
||||||
[Ll]ib
|
[Ll]ib
|
||||||
[Ll]ib64
|
[Ll]ib64
|
||||||
[Ss]cripts
|
|
||||||
pyvenv.cfg
|
pyvenv.cfg
|
||||||
pip-selfcheck.json
|
pip-selfcheck.json
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ Getting your pull request merged in
|
||||||
|
|
||||||
#. Keep it small. The smaller the pull request the more likely I'll pull it in.
|
#. Keep it small. The smaller the pull request the more likely I'll pull it in.
|
||||||
#. Pull requests that fix a current issue get priority for review.
|
#. Pull requests that fix a current issue get priority for review.
|
||||||
#. If you're not already in the `CONTRIBUTORS.rst` file, add yourself!
|
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
-------
|
-------
|
||||||
|
|
1466
CONTRIBUTORS.md
Normal file
1466
CONTRIBUTORS.md
Normal file
File diff suppressed because it is too large
Load Diff
427
CONTRIBUTORS.rst
427
CONTRIBUTORS.rst
|
@ -1,427 +0,0 @@
|
||||||
Contributors
|
|
||||||
============
|
|
||||||
|
|
||||||
Core Developers
|
|
||||||
---------------
|
|
||||||
|
|
||||||
These contributors have commit flags for the repository,
|
|
||||||
and are able to accept and merge pull requests.
|
|
||||||
|
|
||||||
=========================== ================= ===========
|
|
||||||
Name Github Twitter
|
|
||||||
=========================== ================= ===========
|
|
||||||
Daniel Roy Greenfeld `@pydanny`_ @pydanny
|
|
||||||
Audrey Roy Greenfeld* `@audreyr`_ @audreyr
|
|
||||||
Fábio C. Barrionuevo da Luz `@luzfcb`_ @luzfcb
|
|
||||||
Saurabh Kumar `@theskumar`_ @_theskumar
|
|
||||||
Jannis Gebauer `@jayfk`_
|
|
||||||
Burhan Khalid `@burhan`_ @burhan
|
|
||||||
Nikita Shupeyko `@webyneter`_ @webyneter
|
|
||||||
Bruno Alla `@browniebroke`_ @_BrunoAlla
|
|
||||||
Wan Liuyang `@sfdye`_ @sfdye
|
|
||||||
=========================== ================= ===========
|
|
||||||
|
|
||||||
*Audrey is also the creator of Cookiecutter. Audrey and
|
|
||||||
Daniel are on the Cookiecutter core team.*
|
|
||||||
|
|
||||||
.. _@pydanny: https://github.com/pydanny
|
|
||||||
.. _@luzfcb: https://github.com/luzfcb
|
|
||||||
.. _@theskumar: https://github.com/theskumar
|
|
||||||
.. _@audreyr: https://github.com/audreyr
|
|
||||||
.. _@jayfk: https://github.com/jayfk
|
|
||||||
.. _@webyneter: https://github.com/webyneter
|
|
||||||
.. _@browniebroke: https://github.com/browniebroke
|
|
||||||
.. _@sfdye: https://github.com/sfdye
|
|
||||||
|
|
||||||
Other Contributors
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Listed in alphabetical order.
|
|
||||||
|
|
||||||
========================== ============================ ==============
|
|
||||||
Name Github Twitter
|
|
||||||
========================== ============================ ==============
|
|
||||||
18 `@dezoito`_
|
|
||||||
2O4 `@2O4`_
|
|
||||||
a7p `@a7p`_
|
|
||||||
Aadith PM `@aadithpm`_
|
|
||||||
Aaron Eikenberry `@aeikenberry`_
|
|
||||||
Adam Bogdał `@bogdal`_
|
|
||||||
Adam Dobrawy `@ad-m`_
|
|
||||||
Adam Steele `@adammsteele`_
|
|
||||||
Agam Dua
|
|
||||||
Agustín Scaramuzza `@scaramagus`_ @scaramagus
|
|
||||||
Alberto Sanchez `@alb3rto`_
|
|
||||||
Alex Tsai `@caffodian`_
|
|
||||||
Alvaro [Andor] `@andor-pierdelacabeza`_
|
|
||||||
Amjith Ramanujam `@amjith`_
|
|
||||||
Andreas Meistad `@ameistad`_
|
|
||||||
Andres Gonzalez `@andresgz`_
|
|
||||||
Andrew Mikhnevich `@zcho`_
|
|
||||||
Andrew Chen Wang `@Andrew-Chen-Wang`_
|
|
||||||
Andy Rose
|
|
||||||
Anna Callahan `@jazztpt`_
|
|
||||||
Anna Sidwell `@takkaria`_
|
|
||||||
Antonia Blair `@antoniablair`_ @antoniablairart
|
|
||||||
Anuj Bansal `@ahhda`_
|
|
||||||
Arcuri Davide `@dadokkio`_
|
|
||||||
Areski Belaid `@areski`_
|
|
||||||
AsheKR `@ashekr`_
|
|
||||||
Ashley Camba
|
|
||||||
Barclay Gauld `@yunti`_
|
|
||||||
Bartek `@btknu`_
|
|
||||||
Ben Lopatin
|
|
||||||
Ben Warren `@bwarren2`_
|
|
||||||
Benjamin Abel
|
|
||||||
Bert de Miranda `@bertdemiranda`_
|
|
||||||
Bo Lopker `@blopker`_
|
|
||||||
Bo Peng `@BoPeng`_
|
|
||||||
Bouke Haarsma
|
|
||||||
Brent Payne `@brentpayne`_ @brentpayne
|
|
||||||
Bruce Olivier `@bolivierjr`_
|
|
||||||
Burhan Khalid `@burhan`_ @burhan
|
|
||||||
Caio Ariede `@caioariede`_ @caioariede
|
|
||||||
Carl Johnson `@carlmjohnson`_ @carlmjohnson
|
|
||||||
Catherine Devlin `@catherinedevlin`_
|
|
||||||
Cédric Gaspoz `@cgaspoz`_
|
|
||||||
Charlie Smith `@chuckus`_
|
|
||||||
Chris Curvey `@ccurvey`_
|
|
||||||
Chris Franklin
|
|
||||||
Chris Franklin `@hairychris`_
|
|
||||||
Chris Pappalardo `@ChrisPappalardo`_
|
|
||||||
Christopher Clarke `@chrisdev`_
|
|
||||||
Cole Mackenzie `@cmackenzie1`_
|
|
||||||
Cole Maclean `@cole`_ @cole
|
|
||||||
Collederas `@Collederas`_
|
|
||||||
Corey Garvey `@coreygarvey`_
|
|
||||||
Craig Margieson `@cmargieson`_
|
|
||||||
Cristian Vargas `@cdvv7788`_
|
|
||||||
Cullen Rhodes `@c-rhodes`_
|
|
||||||
Curtis St Pierre `@curtisstpierre`_ @cstpierre1388
|
|
||||||
Dan Shultz `@shultz`_
|
|
||||||
Dani Hodovic `@danihodovic`_
|
|
||||||
Daniel Hepper `@dhepper`_ @danielhepper
|
|
||||||
Daniel Hillier `@danifus`_
|
|
||||||
Daniel Sears `@highpost`_ @highpost
|
|
||||||
Daniele Tricoli `@eriol`_
|
|
||||||
David Díaz `@ddiazpinto`_ @DavidDiazPinto
|
|
||||||
Davit Tovmasyan `@davitovmasyan`_
|
|
||||||
Davur Clementsen `@dsclementsen`_ @davur
|
|
||||||
Delio Castillo `@jangeador`_ @jangeador
|
|
||||||
Demetris Stavrou `@demestav`_
|
|
||||||
Denis Bobrov `@delneg`_
|
|
||||||
Denis Orehovsky `@apirobot`_
|
|
||||||
Denis Savran `@blaxpy`_
|
|
||||||
Diane Chen `@purplediane`_ @purplediane88
|
|
||||||
Dónal Adams `@epileptic-fish`_
|
|
||||||
Dong Huynh `@trungdong`_
|
|
||||||
Duda Nogueira `@dudanogueira`_ @dudanogueira
|
|
||||||
Emanuel Calso `@bloodpet`_ @bloodpet
|
|
||||||
Eraldo Energy `@eraldo`_
|
|
||||||
Eric Groom `@ericgroom`_
|
|
||||||
Ernesto Cedeno `@codnee`_
|
|
||||||
Eyad Al Sibai `@eyadsibai`_
|
|
||||||
Felipe Arruda `@arruda`_
|
|
||||||
Florian Idelberger `@step21`_ @windrush
|
|
||||||
Gabriel Mejia `@elgartoinf`_ @elgartoinf
|
|
||||||
Garry Cairns `@garry-cairns`_
|
|
||||||
Garry Polley `@garrypolley`_
|
|
||||||
Gilbishkosma `@Gilbishkosma`_
|
|
||||||
Glenn Wiskur `@gwiskur`_
|
|
||||||
Guilherme Guy `@guilherme1guy`_
|
|
||||||
Hamish Durkin `@durkode`_
|
|
||||||
Hana Quadara `@hanaquadara`_
|
|
||||||
Hannah Lazarus `@hanhanhan`_
|
|
||||||
Harry Moreno `@morenoh149`_ @morenoh149
|
|
||||||
Harry Percival `@hjwp`_
|
|
||||||
Hendrik Schneider `@hendrikschneider`_
|
|
||||||
Henrique G. G. Pereira `@ikkebr`_
|
|
||||||
Howie Zhao `@howiezhao`_
|
|
||||||
Ian Lee `@IanLee1521`_
|
|
||||||
Irfan Ahmad `@erfaan`_ @erfaan
|
|
||||||
Isaac12x `@Isaac12x`_
|
|
||||||
Ivan Khomutov `@ikhomutov`_
|
|
||||||
James Williams `@jameswilliams1`_
|
|
||||||
Jan Fabry `@janfabry`_
|
|
||||||
Jan Van Bruggen `@jvanbrug`_
|
|
||||||
Jelmer Draaijer `@foarsitter`_
|
|
||||||
Jerome Caisip `@jeromecaisip`_
|
|
||||||
Jens Nilsson `@phiberjenz`_
|
|
||||||
Jerome Leclanche `@jleclanche`_ @Adys
|
|
||||||
Jimmy Gitonga `@afrowave`_ @afrowave
|
|
||||||
John Cass `@jcass77`_ @cass_john
|
|
||||||
Jonathan Thompson `@nojanath`_
|
|
||||||
Jules Cheron `@jules-ch`_
|
|
||||||
Julien Almarcha `@sladinji`_
|
|
||||||
Julio Castillo `@juliocc`_
|
|
||||||
Kaido Kert `@kaidokert`_
|
|
||||||
kappataumu `@kappataumu`_ @kappataumu
|
|
||||||
Kaveh `@ka7eh`_
|
|
||||||
Keith Bailey `@keithjeb`_
|
|
||||||
Keith Webber `@townie`_
|
|
||||||
Kevin A. Stone
|
|
||||||
Kevin Ndung'u `@kevgathuku`_
|
|
||||||
Keyvan Mosharraf `@keyvanm`_
|
|
||||||
Krzysztof Szumny `@noisy`_
|
|
||||||
Krzysztof Żuraw `@krzysztofzuraw`_
|
|
||||||
Leo won `@leollon`_
|
|
||||||
Leo Zhou `@glasslion`_
|
|
||||||
Leon Kim `@PilhwanKim`_
|
|
||||||
Leonardo Jimenez `@xpostudio4`_
|
|
||||||
Lin Xianyi `@iynaix`_
|
|
||||||
Luis Nell `@originell`_
|
|
||||||
Lukas Klein
|
|
||||||
Lyla Fischer
|
|
||||||
Malik Sulaimanov `@flyudvik`_ @flyudvik
|
|
||||||
Martin Blech
|
|
||||||
Martin Saizar `@msaizar`_
|
|
||||||
Mateusz Ostaszewski `@mostaszewski`_
|
|
||||||
Mathijs Hoogland `@MathijsHoogland`_
|
|
||||||
Matt Braymer-Hayes `@mattayes`_ @mattayes
|
|
||||||
Matt Knapper `@mknapper1`_
|
|
||||||
Matt Linares
|
|
||||||
Matt Menzenski `@menzenski`_
|
|
||||||
Matt Warren `@mfwarren`_
|
|
||||||
Matthew Sisley `@mjsisley`_
|
|
||||||
Matthias Sieber `@manonthemat`_ @MatzeOne
|
|
||||||
Meghan Heintz `@dot2dotseurat`_
|
|
||||||
Mesut Yılmaz `@myilmaz`_
|
|
||||||
Michael Gecht `@mimischi`_ @_mischi
|
|
||||||
Michael Samoylov `@msamoylov`_
|
|
||||||
Min ho Kim `@minho42`_
|
|
||||||
mozillazg `@mozillazg`_
|
|
||||||
Nico Stefani `@nicolas471`_ @moby_dick91
|
|
||||||
Oleg Russkin `@rolep`_
|
|
||||||
Pablo `@oubiga`_
|
|
||||||
Parbhat Puri `@parbhat`_
|
|
||||||
Pawan Chaurasia `@rjsnh1522`_
|
|
||||||
Peter Bittner `@bittner`_
|
|
||||||
Peter Coles `@mrcoles`_
|
|
||||||
Philipp Matthies `@canonnervio`_
|
|
||||||
Pierre Chiquet `@pchiquet`_
|
|
||||||
Raony Guimarães Corrêa `@raonyguimaraes`_
|
|
||||||
Raphael Pierzina `@hackebrot`_
|
|
||||||
Reggie Riser `@reggieriser`_
|
|
||||||
René Muhl `@rm--`_
|
|
||||||
Richard Hajdu `@Tusky`_
|
|
||||||
Roman Afanaskin `@siauPatrick`_
|
|
||||||
Roman Osipenko `@romanosipenko`_
|
|
||||||
Russell Davies
|
|
||||||
Sam Collins `@MightySCollins`_
|
|
||||||
Sascha `@saschalalala`_ @saschalalala
|
|
||||||
Shupeyko Nikita `@webyneter`_
|
|
||||||
Sławek Ehlert `@slafs`_
|
|
||||||
Sorasful `@sorasful`_
|
|
||||||
Srinivas Nyayapati `@shireenrao`_
|
|
||||||
stepmr `@stepmr`_
|
|
||||||
Steve Steiner `@ssteinerX`_
|
|
||||||
Sudarshan Wadkar `@wadkar`_
|
|
||||||
Sule Marshall `@suledev`_
|
|
||||||
Tano Abeleyra `@tanoabeleyra`_
|
|
||||||
Taylor Baldwin
|
|
||||||
Théo Segonds `@show0k`_
|
|
||||||
Tim Claessens `@timclaessens`_
|
|
||||||
Tim Freund `@timfreund`_
|
|
||||||
Tom Atkins `@knitatoms`_
|
|
||||||
Tom Offermann
|
|
||||||
Travis McNeill `@Travistock`_ @tavistock_esq
|
|
||||||
Tubo Shi `@Tubo`_
|
|
||||||
Umair Ashraf `@umrashrf`_ @fabumair
|
|
||||||
Vadim Iskuchekov `@Egregors`_ @egregors
|
|
||||||
Vicente G. Reyes `@reyesvicente`_ @highcenburg
|
|
||||||
Vitaly Babiy
|
|
||||||
Vivian Guillen `@viviangb`_
|
|
||||||
Vlad Doster `@vladdoster`_
|
|
||||||
Will Farley `@goldhand`_ @g01dhand
|
|
||||||
William Archinal `@archinal`_
|
|
||||||
Xaver Y.R. Chen `@yrchen`_ @yrchen
|
|
||||||
Yaroslav Halchenko
|
|
||||||
Yuchen Xie `@mapx`_
|
|
||||||
========================== ============================ ==============
|
|
||||||
|
|
||||||
.. _@aadithpm: https://github.com/aadithpm
|
|
||||||
.. _@a7p: https://github.com/a7p
|
|
||||||
.. _@2O4: https://github.com/2O4
|
|
||||||
.. _@ad-m: https://github.com/ad-m
|
|
||||||
.. _@adammsteele: https://github.com/adammsteele
|
|
||||||
.. _@aeikenberry: https://github.com/aeikenberry
|
|
||||||
.. _@afrowave: https://github.com/afrowave
|
|
||||||
.. _@ahhda: https://github.com/ahhda
|
|
||||||
.. _@alb3rto: https://github.com/alb3rto
|
|
||||||
.. _@ameistad: https://github.com/ameistad
|
|
||||||
.. _@amjith: https://github.com/amjith
|
|
||||||
.. _@andor-pierdelacabeza: https://github.com/andor-pierdelacabeza
|
|
||||||
.. _@andresgz: https://github.com/andresgz
|
|
||||||
.. _@antoniablair: https://github.com/antoniablair
|
|
||||||
.. _@Andrew-Chen-Wang: https://github.com/Andrew-Chen-Wang
|
|
||||||
.. _@apirobot: https://github.com/apirobot
|
|
||||||
.. _@archinal: https://github.com/archinal
|
|
||||||
.. _@areski: https://github.com/areski
|
|
||||||
.. _@arruda: https://github.com/arruda
|
|
||||||
.. _@ashekr: https://github.com/ashekr
|
|
||||||
.. _@bertdemiranda: https://github.com/bertdemiranda
|
|
||||||
.. _@bittner: https://github.com/bittner
|
|
||||||
.. _@blaxpy: https://github.com/blaxpy
|
|
||||||
.. _@bloodpet: https://github.com/bloodpet
|
|
||||||
.. _@blopker: https://github.com/blopker
|
|
||||||
.. _@bogdal: https://github.com/bogdal
|
|
||||||
.. _@bolivierjr: https://github.com/bolivierjr
|
|
||||||
.. _@BoPeng: https://github.com/BoPeng
|
|
||||||
.. _@brentpayne: https://github.com/brentpayne
|
|
||||||
.. _@btknu: https://github.com/btknu
|
|
||||||
.. _@burhan: https://github.com/burhan
|
|
||||||
.. _@bwarren2: https://github.com/bwarren2
|
|
||||||
.. _@c-rhodes: https://github.com/c-rhodes
|
|
||||||
.. _@caffodian: https://github.com/caffodian
|
|
||||||
.. _@canonnervio: https://github.com/canonnervio
|
|
||||||
.. _@caioariede: https://github.com/caioariede
|
|
||||||
.. _@carlmjohnson: https://github.com/carlmjohnson
|
|
||||||
.. _@catherinedevlin: https://github.com/catherinedevlin
|
|
||||||
.. _@ccurvey: https://github.com/ccurvey
|
|
||||||
.. _@cdvv7788: https://github.com/cdvv7788
|
|
||||||
.. _@cgaspoz: https://github.com/cgaspoz
|
|
||||||
.. _@chrisdev: https://github.com/chrisdev
|
|
||||||
.. _@ChrisPappalardo: https://github.com/ChrisPappalardo
|
|
||||||
.. _@chuckus: https://github.com/chuckus
|
|
||||||
.. _@cmackenzie1: https://github.com/cmackenzie1
|
|
||||||
.. _@cmargieson: https://github.com/cmargieson
|
|
||||||
.. _@codnee: https://github.com/codnee
|
|
||||||
.. _@cole: https://github.com/cole
|
|
||||||
.. _@Collederas: https://github.com/Collederas
|
|
||||||
.. _@curtisstpierre: https://github.com/curtisstpierre
|
|
||||||
.. _@dadokkio: https://github.com/dadokkio
|
|
||||||
.. _@danihodovic: https://github.com/danihodovic
|
|
||||||
.. _@danifus: https://github.com/danifus
|
|
||||||
.. _@davitovmasyan: https://github.com/davitovmasyan
|
|
||||||
.. _@ddiazpinto: https://github.com/ddiazpinto
|
|
||||||
.. _@delneg: https://github.com/delneg
|
|
||||||
.. _@demestav: https://github.com/demestav
|
|
||||||
.. _@dezoito: https://github.com/dezoito
|
|
||||||
.. _@dhepper: https://github.com/dhepper
|
|
||||||
.. _@dot2dotseurat: https://github.com/dot2dotseurat
|
|
||||||
.. _@dudanogueira: https://github.com/dudanogueira
|
|
||||||
.. _@dsclementsen: https://github.com/dsclementsen
|
|
||||||
.. _@guilherme1guy: https://github.com/guilherme1guy
|
|
||||||
.. _@durkode: https://github.com/durkode
|
|
||||||
.. _@Egregors: https://github.com/Egregors
|
|
||||||
.. _@elgartoinf: https://gihub.com/elgartoinf
|
|
||||||
.. _@epileptic-fish: https://gihub.com/epileptic-fish
|
|
||||||
.. _@eraldo: https://github.com/eraldo
|
|
||||||
.. _@erfaan: https://github.com/erfaan
|
|
||||||
.. _@ericgroom: https://github.com/ericgroom
|
|
||||||
.. _@eriol: https://github.com/eriol
|
|
||||||
.. _@eyadsibai: https://github.com/eyadsibai
|
|
||||||
.. _@flyudvik: https://github.com/flyudvik
|
|
||||||
.. _@foarsitter: https://github.com/foarsitter
|
|
||||||
.. _@garry-cairns: https://github.com/garry-cairns
|
|
||||||
.. _@garrypolley: https://github.com/garrypolley
|
|
||||||
.. _@Gilbishkosma: https://github.com/Gilbishkosma
|
|
||||||
.. _@gwiskur: https://github.com/gwiskur
|
|
||||||
.. _@glasslion: https://github.com/glasslion
|
|
||||||
.. _@goldhand: https://github.com/goldhand
|
|
||||||
.. _@hackebrot: https://github.com/hackebrot
|
|
||||||
.. _@hairychris: https://github.com/hairychris
|
|
||||||
.. _@hanaquadara: https://github.com/hanaquadara
|
|
||||||
.. _@hanhanhan: https://github.com/hanhanhan
|
|
||||||
.. _@hendrikschneider: https://github.com/hendrikschneider
|
|
||||||
.. _@highpost: https://github.com/highpost
|
|
||||||
.. _@hjwp: https://github.com/hjwp
|
|
||||||
.. _@howiezhao: https://github.com/howiezhao
|
|
||||||
.. _@IanLee1521: https://github.com/IanLee1521
|
|
||||||
.. _@ikhomutov: https://github.com/ikhomutov
|
|
||||||
.. _@jameswilliams1: https://github.com/jameswilliams1
|
|
||||||
.. _@ikkebr: https://github.com/ikkebr
|
|
||||||
.. _@Isaac12x: https://github.com/Isaac12x
|
|
||||||
.. _@iynaix: https://github.com/iynaix
|
|
||||||
.. _@janfabry: https://github.com/janfabry
|
|
||||||
.. _@jangeador: https://github.com/jangeador
|
|
||||||
.. _@jazztpt: https://github.com/jazztpt
|
|
||||||
.. _@jcass77: https://github.com/jcass77
|
|
||||||
.. _@jeromecaisip: https://github.com/jeromecaisip
|
|
||||||
.. _@jleclanche: https://github.com/jleclanche
|
|
||||||
.. _@jules-ch: https://github.com/jules-ch
|
|
||||||
.. _@juliocc: https://github.com/juliocc
|
|
||||||
.. _@jvanbrug: https://github.com/jvanbrug
|
|
||||||
.. _@ka7eh: https://github.com/ka7eh
|
|
||||||
.. _@kaidokert: https://github.com/kaidokert
|
|
||||||
.. _@kappataumu: https://github.com/kappataumu
|
|
||||||
.. _@keithjeb: https://github.com/keithjeb
|
|
||||||
.. _@kevgathuku: https://github.com/kevgathuku
|
|
||||||
.. _@keyvanm: https://github.com/keyvanm
|
|
||||||
.. _@knitatoms: https://github.com/knitatoms
|
|
||||||
.. _@krzysztofzuraw: https://github.com/krzysztofzuraw
|
|
||||||
.. _@leollon: https://github.com/leollon
|
|
||||||
.. _@MathijsHoogland: https://github.com/MathijsHoogland
|
|
||||||
.. _@mapx: https://github.com/mapx
|
|
||||||
.. _@manonthemat: https://github.com/manonthemat
|
|
||||||
.. _@mattayes: https://github.com/mattayes
|
|
||||||
.. _@menzenski: https://github.com/menzenski
|
|
||||||
.. _@mfwarren: https://github.com/mfwarren
|
|
||||||
.. _@MightySCollins: https://github.com/MightySCollins
|
|
||||||
.. _@mimischi: https://github.com/mimischi
|
|
||||||
.. _@minho42: https://github.com/minho42
|
|
||||||
.. _@mjsisley: https://github.com/mjsisley
|
|
||||||
.. _@mknapper1: https://github.com/mknapper1
|
|
||||||
.. _@morenoh149: https://github.com/morenoh149
|
|
||||||
.. _@mostaszewski: https://github.com/mostaszewski
|
|
||||||
.. _@mozillazg: https://github.com/mozillazg
|
|
||||||
.. _@mrcoles: https://github.com/mrcoles
|
|
||||||
.. _@msaizar: https://github.com/msaizar
|
|
||||||
.. _@msamoylov: https://github.com/msamoylov
|
|
||||||
.. _@myilmaz: https://github.com/myilmaz
|
|
||||||
.. _@nicolas471: https://github.com/nicolas471
|
|
||||||
.. _@noisy: https://github.com/noisy
|
|
||||||
.. _@nojanath: https://github.com/nojanath
|
|
||||||
.. _@originell: https://github.com/originell
|
|
||||||
.. _@oubiga: https://github.com/oubiga
|
|
||||||
.. _@parbhat: https://github.com/parbhat
|
|
||||||
.. _@rjsnh1522: https://github.com/rjsnh1522
|
|
||||||
.. _@pchiquet: https://github.com/pchiquet
|
|
||||||
.. _@phiberjenz: https://github.com/phiberjenz
|
|
||||||
.. _@PilhwanKim: https://github.com/PilhwanKim
|
|
||||||
.. _@purplediane: https://github.com/purplediane
|
|
||||||
.. _@raonyguimaraes: https://github.com/raonyguimaraes
|
|
||||||
.. _@reggieriser: https://github.com/reggieriser
|
|
||||||
.. _@reyesvicente: https://github.com/reyesvicente
|
|
||||||
.. _@rm--: https://github.com/rm--
|
|
||||||
.. _@Tusky: https://github.com/Tusky
|
|
||||||
.. _@rolep: https://github.com/rolep
|
|
||||||
.. _@romanosipenko: https://github.com/romanosipenko
|
|
||||||
.. _@saschalalala: https://github.com/saschalalala
|
|
||||||
.. _@scaramagus: https://github.com/scaramagus
|
|
||||||
.. _@shireenrao: https://github.com/shireenrao
|
|
||||||
.. _@show0k: https://github.com/show0k
|
|
||||||
.. _@shultz: https://github.com/shultz
|
|
||||||
.. _@siauPatrick: https://github.com/siauPatrick
|
|
||||||
.. _@sladinji: https://github.com/sladinji
|
|
||||||
.. _@slafs: https://github.com/slafs
|
|
||||||
.. _@sorasful: https://github.com/sorasful
|
|
||||||
.. _@ssteinerX: https://github.com/ssteinerx
|
|
||||||
.. _@step21: https://github.com/step21
|
|
||||||
.. _@stepmr: https://github.com/stepmr
|
|
||||||
.. _@suledev: https://github.com/suledev
|
|
||||||
.. _@takkaria: https://github.com/takkaria
|
|
||||||
.. _@tanoabeleyra: https://github.com/tanoabeleyra
|
|
||||||
.. _@timclaessens: https://github.com/timclaessens
|
|
||||||
.. _@timfreund: https://github.com/timfreund
|
|
||||||
.. _@townie: https://github.com/townie
|
|
||||||
.. _@Travistock: https://github.com/Tavistock
|
|
||||||
.. _@trungdong: https://github.com/trungdong
|
|
||||||
.. _@Tubo: https://github.com/tubo
|
|
||||||
.. _@umrashrf: https://github.com/umrashrf
|
|
||||||
.. _@viviangb: https://github.com/viviangb
|
|
||||||
.. _@vladdoster: https://github.com/vladdoster
|
|
||||||
.. _@wadkar: https://github.com/wadkar
|
|
||||||
.. _@xpostudio4: https://github.com/xpostudio4
|
|
||||||
.. _@yrchen: https://github.com/yrchen
|
|
||||||
.. _@yunti: https://github.com/yunti
|
|
||||||
.. _@zcho: https://github.com/zcho
|
|
||||||
|
|
||||||
Special Thanks
|
|
||||||
~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The following haven't provided code directly, but have provided guidance and advice.
|
|
||||||
|
|
||||||
* Jannis Leidel
|
|
||||||
* Nate Aune
|
|
||||||
* Barry Morrison
|
|
|
@ -16,3 +16,8 @@ pytest==6.0.1
|
||||||
pytest-cookies==0.5.1
|
pytest-cookies==0.5.1
|
||||||
pytest-instafail==0.4.2
|
pytest-instafail==0.4.2
|
||||||
pyyaml==5.3.1
|
pyyaml==5.3.1
|
||||||
|
|
||||||
|
# Scripting
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
PyGithub
|
||||||
|
jinja2
|
||||||
|
|
1
scripts/__init__.py
Normal file
1
scripts/__init__.py
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
104
scripts/update_contributors.py
Normal file
104
scripts/update_contributors.py
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
from github import Github
|
||||||
|
from github.NamedUser import NamedUser
|
||||||
|
from jinja2 import Template
|
||||||
|
|
||||||
|
CURRENT_FILE = Path(__file__)
|
||||||
|
ROOT = CURRENT_FILE.parents[1]
|
||||||
|
BOT_LOGINS = ["pyup-bot"]
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
"""
|
||||||
|
Script entry point.
|
||||||
|
|
||||||
|
1. Fetch recent contribtors from the Github API
|
||||||
|
2. Add missing ones to the JSON file
|
||||||
|
3. Generate Markdown from JSON file
|
||||||
|
"""
|
||||||
|
recent_authors = set(iter_recent_authors())
|
||||||
|
|
||||||
|
# Add missing users to the JSON file
|
||||||
|
contrib_file = ContributorsJSONFile()
|
||||||
|
for author in recent_authors:
|
||||||
|
print(f"Checking if {author.login} should be added")
|
||||||
|
if author.login not in contrib_file:
|
||||||
|
contrib_file.add_contributor(author)
|
||||||
|
print(f"Added {author.login} to contributors")
|
||||||
|
contrib_file.save()
|
||||||
|
|
||||||
|
# Generate MD file from JSON file
|
||||||
|
write_md_file(contrib_file.content)
|
||||||
|
|
||||||
|
|
||||||
|
def iter_recent_authors():
|
||||||
|
"""
|
||||||
|
Fetch users who opened recently merged pull requests.
|
||||||
|
|
||||||
|
Use Github API to fetch recent authors rather than
|
||||||
|
git CLI to work with Github usernames.
|
||||||
|
"""
|
||||||
|
repo = Github(per_page=5).get_repo("pydanny/cookiecutter-django")
|
||||||
|
recent_pulls = repo.get_pulls(
|
||||||
|
state="closed", sort="updated", direction="desc"
|
||||||
|
).get_page(0)
|
||||||
|
for pull in recent_pulls:
|
||||||
|
if (
|
||||||
|
pull.merged
|
||||||
|
and pull.user.type == "User"
|
||||||
|
and pull.user.login not in BOT_LOGINS
|
||||||
|
):
|
||||||
|
yield pull.user
|
||||||
|
|
||||||
|
|
||||||
|
class ContributorsJSONFile:
|
||||||
|
"""Helper to interact with the JSON file."""
|
||||||
|
|
||||||
|
file_path = ROOT / ".github" / "contributors.json"
|
||||||
|
content = None
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
"""Read initial content."""
|
||||||
|
self.content = json.loads(self.file_path.read_text())
|
||||||
|
|
||||||
|
def __contains__(self, github_login: str):
|
||||||
|
"""Provide a nice API to do: `username in file`."""
|
||||||
|
return any(
|
||||||
|
# Github usernames are case insensitive
|
||||||
|
github_login.lower() == contrib["github_login"].lower()
|
||||||
|
for contrib in self.content
|
||||||
|
)
|
||||||
|
|
||||||
|
def add_contributor(self, user: NamedUser):
|
||||||
|
"""Append the contributor data we care about at the end."""
|
||||||
|
contributor_data = {
|
||||||
|
"name": user.name or user.login,
|
||||||
|
"github_login": user.login,
|
||||||
|
"twitter_username": user.twitter_username or "",
|
||||||
|
}
|
||||||
|
self.content.append(contributor_data)
|
||||||
|
|
||||||
|
def save(self):
|
||||||
|
"""Write the file to disk with indentation."""
|
||||||
|
text_content = json.dumps(self.content, indent=2, ensure_ascii=False)
|
||||||
|
self.file_path.write_text(text_content)
|
||||||
|
|
||||||
|
|
||||||
|
def write_md_file(contributors):
|
||||||
|
"""Generate markdown file from Jinja template."""
|
||||||
|
contributors_template = ROOT / ".github" / "CONTRIBUTORS-template.md"
|
||||||
|
template = Template(contributors_template.read_text(), autoescape=True)
|
||||||
|
core_contributors = [c for c in contributors if c.get("is_core", False)]
|
||||||
|
other_contributors = (c for c in contributors if not c.get("is_core", False))
|
||||||
|
other_contributors = sorted(other_contributors, key=lambda c: c["name"].lower())
|
||||||
|
content = template.render(
|
||||||
|
core_contributors=core_contributors, other_contributors=other_contributors
|
||||||
|
)
|
||||||
|
|
||||||
|
file_path = ROOT / "CONTRIBUTORS.md"
|
||||||
|
file_path.write_text(content)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user