mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-02-25 07:50:40 +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:)
|
||||
|
||||
[//]: # (1. Make sure to add yourself to `CONTRIBUTORS.rst` through this PR provided you're contributing here for the first time)
|
||||
[//]: # (2. Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing)
|
||||
[//]: # (- 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
|
||||
|
@ -11,15 +11,11 @@
|
|||
[//]: # (What's it you're proposing?)
|
||||
|
||||
|
||||
|
||||
|
||||
## Rationale
|
||||
|
||||
[//]: # (Why does the project need that?)
|
||||
|
||||
|
||||
|
||||
|
||||
## Use case(s) / visualization(s)
|
||||
|
||||
[//]: # ("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
|
||||
[Ll]ib
|
||||
[Ll]ib64
|
||||
[Ss]cripts
|
||||
pyvenv.cfg
|
||||
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.
|
||||
#. Pull requests that fix a current issue get priority for review.
|
||||
#. If you're not already in the `CONTRIBUTORS.rst` file, add yourself!
|
||||
|
||||
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-instafail==0.4.2
|
||||
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