Eine Github -Aktion, um ChangeLog nach herkömmlichen Commits automatisch zu generieren.
Fühlen Sie sich frei, eine Pull -Anfrage oder ein Problem einzureichen, aber befolgen Sie die Vorlagen.
Willkommen mit Mitwirkenden, um dieses Projekt gemeinsam zu verbessern!
Wenn Ihnen das gefällt, gib mir bitte einen Stern !
Erstellen Sie eine Workflow -Datei wie .github/workflows/changelog.yml (Sie finden sie in diesem Repo)
name : Generate changelog
on :
release :
types : [created, edited]
jobs :
generate-changelog :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
with :
fetch-depth : 0
- uses : BobAnkh/[email protected]
with :
REPO_NAME : ' <YourUserName>/<YourRepoName> '
ACCESS_TOKEN : ${{secrets.GITHUB_TOKEN}}
PATH : ' CHANGELOG.md '
COMMIT_MESSAGE : ' docs(CHANGELOG): update release notes '
TYPE : ' feat:Feature,fix:Bug Fixes,docs:Documentation,refactor:Refactor,perf:Performance Improvements 'HINWEIS: Das Erzeugen von Changelog benötigt den gesamten Ausschreibungsgeschichte, sodass Sie
fetch-depth: 0mitactions/checkoutfestlegen solltenHINWEIS: Das Commit -Protokoll beginnt mit
docs(changelog)oderdoc(CHANGELOG)wird dem Changelog nicht hinzugefügt
Weitere Informationen finden Sie unter der Tabelle, wie Sie einige der Parameter festlegen .
| Eingänge | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
| Repo_name | Repository -Name | NEIN | '' Was bedeutet das aktuelle Repository |
| Access_token | Github Access Token. Siehe Anmerkungen 1 | Ja | Sie können einfach ${{secrets.GITHUB_TOKEN}} übergeben |
| WEG | Pfad zu Ihrer Datei | NEIN | CHANGELOG.md |
| ZWEIG | Die in den Pfad angegebene Filiale zum Aktualisieren der Datei | NEIN | '' Was bedeutet Standardzweig |
| Pull_Request | Öffnen Sie eine neue Pull -Anfrage, wenn Sie auf einen Zielzweignamen festgelegt werden. Siehe Anmerkungen 2 | NEIN | '' , was bedeutet, standardmäßig keine Pull -Anfrage zu öffnen |
| Comment_message | Nachricht begehen | NEIN | docs(CHANGELOG): update release notes |
| TYP | Die Art der Commits, die Sie zu ChangeLog hinzufügen möchten. Siehe Anmerkungen 3 | NEIN | 'feat:Feature,fix:Fix' |
| Kommission | Der Kommitter, den Sie verwenden möchten, um die Datei zu aktualisieren. Siehe Anmerkungen 4 | NEIN | '' Was bedeutet einen Standard -Kommando |
| Default_scope | Der Standardbereich, um alle unbeschriebenen Commits zu halten | NEIN | general |
| Suppress_unscoped | Ob Sie ungeschichtete Commits ausschließen sollen | NEIN | FALSCH |
| Unveröffentlichtes_Commits | Ob unveröffentlichte Commits in den ChangeLog aufgenommen werden sollen | NEIN | FALSCH |
| Regenerate_count | Regenerieren n jüngste Veröffentlichungen von ChangeLog. Siehe Anmerkungen 5 | NEIN | 0 |
| Ersetzen Sie_Empty_Release_info | Ersetzen Sie die leeren Release -Informationen durch einige Wörter | NEIN | FALSCH |
Anmerkungen 1 : ${{secrets.GITHUB_TOKEN}} hat eine Ratenlimit, die kleiner als persönlicher Zugriffs-Token (PAT) ist. Wenn Sie also viel mehr Anfragen (Commits, PRs usw.) haben oder sich mit einem 403-Ratenlimit-Geror befinden, verwenden Sie stattdessen Pat.
ANMERKUNGEN 2 : PULL_REQUEST muss zusammen mit BRANCH verwendet werden. Beide sollten mit einem gültigen Zweignamen versehen , wenn Sie eine Pull -Anforderung öffnen möchten. Die GA öffnet eine Pull -Anfrage vom BRANCH (Head -Zweig) zum PULL_REQUEST (Basiszweig). Lassen Sie PULL_REQUEST leer, wenn Sie keine Pull -Anfrage öffnen möchten.
Hinweise 3 : Sie können das aus der Commit -Nachricht erkannte Schlüsselwort und das entsprechende Wort im Changelog im TYPE definieren. Definieren Sie beispielsweise feat:Feature,fix:Bug Fixes verfügen über Festnetznachrichten wie feat(main): add new option , die in ChangeLog unter Feature angezeigt werden soll, und haben Sie Festschwermeldungen wie fix(server): adjust rendering , um sie unter Teilfehler Bug Fixes in ChangeLog präsentiert zu werden.
Anmerkungen 4 : COMMITTER sollte im Format sein: 'author <author@email>'
Anmerkungen 5 : Alle Veröffentlichungen im Changelog werden natürlich dem Changelog hinzugefügt. Verwenden Sie diesen Parameter, um den letzten N -Releases -Changelog zu regenerieren. Die Standardeinstellung auf 0 bedeutet, nur für neue Veröffentlichungen zu generieren. Sie können auf -1 einstellen, um alle Veröffentlichungen zu regenerieren.
Hinweise 6 : Sie können das folgende Format verwenden, um einige Zeilen in der Release -Beschreibung zu vermeiden, um im Changelog zu erscheinen:
<!-- HIDE IN CHANGELOG BEGIN --> See CHANGELOG for more details. This line will be hided when changelog is generated. <!-- HIDE IN CHANGELOG END -->
@Bobankh
Sie sollten unserem Verhaltenskodex folgen.
Siehe beitragende Richtlinien für den Beitrag von Konventionen.
Stellen Sie sicher, dass Sie alle Tests bestehen, bevor Sie Ihren Code einreichen. Sie können pytest -ra am Stammverzeichnis durchführen, um alle Tests durchzuführen.
Sie können den lokalen Modus verwenden, wenn Sie ihn auf Ihrer lokalen Maschine entwickeln. Hier finden Sie die Befehlszeileninformationen:
usage: main.py [-h] [-m MODE] [-f FILE] [-o OUTPUT] [-t TOKEN]
optional arguments:
-h, --help show this help message and exit
-m MODE, --mode MODE choose to use local-dev mode or on github action mode.
Valid values are 'local' or 'github'
-f FILE, --file FILE configuration file to read from when running local-dev
mode
-o OUTPUT, --output OUTPUT
output file when running local-dev mode
-t TOKEN, --token TOKEN
Github Access TokenYixin Shen | Jonathan Mang | Sebastian Rühlen |
Apache-2.0 © Bobankh