Generator log perubahan cepat yang mengambil sumber perubahan dari PR dan masalah GitHub, yang disusun berdasarkan label.
Buat log perubahan dari rilis GitHib terakhir hingga tag/komit git HEAD saat ini untuk repo git di direktori saat ini:
kronik
Buat log perubahan dengan semua perubahan dari v0.16.0 hingga tag/komit git HEAD saat ini untuk repo git di direktori saat ini:
kronik --sejak-tag v0.16.0
Buat log perubahan antara dua tag spesifik untuk repo di jalur tertentu
kronik --sejak-tag v0.16.0 --sampai-tag v0.18.0 ./path/ke/git/repo
Buat log perubahan dan tebak versi rilis dari kumpulan perubahan di log perubahan
kronik -n
Coba tebak versi rilis berikutnya berdasarkan serangkaian perubahan (jangan buat changelog)
kronik versi berikutnya
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b /usr/local/bin
...atau, Anda dapat menentukan versi rilis dan direktori tujuan untuk instalasi:
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b <DESTINATION_DIR> <RELEASE_VERSION>
Jalur pencarian konfigurasi:
.chronicle.yaml
.chronicle/config.yaml
~/.chronicle.yaml
<XDG_CONFIG_HOME>/chronicle/config.yaml
Opsi konfigurasi (nilai contoh adalah default):
# format keluaran changelog# sama seperti -o, --output, dan CHRONICLE_OUTPUT env varoutput: md# menekan semua keluaran logging# sama seperti -q ; CHRONICLE_QUIET env varquiet: false# semua opsi logginglog: # gunakan logging terstruktur # sama seperti CHRONICLE_LOG_STRUCTURED env var terstruktur: false # level log # sama seperti CHRONICLE_LOG_LEVEL env var level: "warn" # lokasi untuk menulis file log (defaultnya adalah tidak punya file log) # sama seperti CHRONICLE_LOG_FILE file env var: ""# tebak versi rilis berikutnya berdasarkan versi saat ini dan serangkaian perubahan (tidak dapat digunakan dengan --until-tag)# sama dengan --speculate-next-version / -n ; CHRONICLE_SPECULATE_NEXT_VERSION env varspeculate-next-version: false# mengganti tag git awal untuk changelog (standarnya adalah mendeteksi rilis terakhir secara otomatis)# sama seperti --since-tag / -s ; CHRONICLE_SINCE_TAG env varsince-tag: ""# ganti tag git akhir untuk log perubahan (standarnya adalah menggunakan tag atau melakukan di git HEAD)# sama seperti --until-tag / -u ; CHRONICLE_SINCE_TAG env varuntil-tag: ""# jika versi rilis saat ini < v1.0 maka perubahan yang melanggar akan menimpa bidang versi minor# sama seperti CHRONICLE_ENFORCE_V0 env varenforce-v0: false# judul yang digunakan untuk log perubahan# sama dengan CHRONICLE_TITLEjudul: Changelog# semua pengaturan terkait githubgithub: # host github yang akan digunakan (diganti untuk penerapan perusahaan github) # sama seperti CHRONICLE_GITHUB_HOST env var host: github.com # jangan mempertimbangkan masalah atau PR apa pun dengan label yang diberikan # sama seperti CHRONICLE_GITHUB_EXCLUDE_LABELS env var kecualikan-label: - duplikat - pertanyaan - tidak sah - tidak akan diperbaiki - tidak bisa diperbaiki - rilis-abaikan - changelog-abaikan - mengabaikan # pertimbangkan PR yang digabungkan sebagai kandidat entri log perubahan (harus memiliki label yang cocok dari entri 'github.changes') # sama seperti CHRONICLE_GITHUB_INCLUDE_PRS env var include-prs: true # pertimbangkan masalah yang sudah ditutup sebagai kandidat entri log perubahan (harus memiliki label yang cocok dari a entri 'github.changes') # sama seperti CHRONICLE_GITHUB_INCLUDE_ISSUES env var include-issues: true # issue can hanya dipertimbangkan untuk kandidat changelog jika mereka memiliki PR tertaut yang digabungkan (catatan: TIDAK mengharuskan github.include-issues disetel) # sama seperti CHRONICLE_GITHUB_ISSUES_REQUIRE_LINKED_PRS env var issue-require-linked-prs: false # daftar definisi label apa yang diterapkan pada isu atau PR yang merupakan entri log perubahan. Entri ini juga menentukan bagian changelog, judul changelog, dan kolom semver yang paling mewakili kelas perubahan. # catatan: tidak dapat diatur melalui perubahan variabel lingkungan: [...<daftar entri>...] # Lihat bagian "Definisi perubahan GitHub default" untuk lebih jelasnya
Konfigurasi github.changes
adalah daftar pemetaan, yang masing-masing menggunakan bidang berikut:
name
: [string] tunggal, huruf kecil, dipisahkan tanda hubung (tanpa spasi) nama yang paling mewakili perubahan (misalnya "perubahan-perubahan", "keamanan", "fitur tambahan", "peningkatan", "fitur baru", dll).
title
: [string] judul bagian di changelog yang mencantumkan semua entri.
semver-field
: entri perubahan [string] akan menabrak bidang semver masing-masing saat menebak versi rilis berikutnya. Nilai yang diperbolehkan: major
, minor
, atau patch
.
labels
: [daftar string] semua label terbitan atau PR yang harus cocok dengan bagian perubahan ini.
Nilai default untuk github.changes
adalah:
- nama: judul perbaikan keamanan: Bidang semver Perbaikan Keamanan: label patch: - keamanan - kerentanan - nama: judul fitur tambahan: Fitur Tambahan bidang semver: label minor: - peningkatan - fitur - kecil - nama: judul perbaikan bug: Perbaikan Bug semver-field: label patch: - serangga - memperbaiki - perbaikan bug - tambalan - nama: judul fitur-melanggar: Perubahan-perubahan yang Dapat Mengganggu semver-field: label besar: - melanggar - tidak kompatibel ke belakang - perubahan-perubahan - fitur melanggar - besar - nama: judul fitur dihapus: Fitur dihapus bidang semver: label besar: - DIHAPUS - nama: judul fitur yang tidak digunakan lagi: Fitur yang tidak digunakan lagi bidang semver: label minor: - tidak digunakan lagi- nama: judul tidak diketahui: Perubahan Tambahan