4.5 KiB
gitdch
Simple python script using GitPython library to generate debian changelog file from git commit history. Each existing tags is considered as a release version and current working version is numbered using ''git describe --always --tags'' command.
Installation
Dependencies
apt install git python3-git
Using git
git clone https://gogs.zionetrix.net/bn8/gitdch.git /usr/local/src/gitdch
ln -s /usr/local/src/gitdch/gitdch /usr/local/bin/gitdch
Using wget
wget -O /usr/local/bin/gitdch https://gogs.zionetrix.net/bn8/gitdch/raw/master/gitdch
chmod +x /usr/local/bin/gitdch
Using curl
curl -o /usr/local/bin/gitdch https://gogs.zionetrix.net/bn8/gitdch/raw/master/gitdch
chmod +x /usr/local/bin/gitdch
Usage
usage: gitdch [-h] [-d] [-v] [-w] [-l LOGFILE] [-q] [-p GIT_PATH] [-o OUTPUT] [-A]
[-n PACKAGE_NAME] [-V VERSION] [--version-suffix VERSION_SUFFIX]
[-c CODE_NAME] [-u URGENCY] [-N MAINTAINER_NAME] [-E MAINTAINER_EMAIL]
[-R RELEASE_NOTES] [--revision REVISION] [-C CLEAN_TAGS_REGEX]
[-x EXCLUDE]
Generate Debian package changelog from git (version: 0.0)
optional arguments:
-h, --help show this help message and exit
-d, --debug Show debug messages
-v, --verbose Show verbose messages
-w, --warning Show warning messages
-l LOGFILE, --log-file LOGFILE
Log file path
-q, --quiet Quiet mode: do not log on console (only if log file is
provided)
-p GIT_PATH, --path GIT_PATH
Git repository path (default: ./)
-o OUTPUT, --output OUTPUT
Generated Debian changelog output path (default: stdout)
-A, --append Append mode: if the output changelog file already exists,
append generated changelog lines at the begining of the file
(optional, default: overwriting the file)
-n PACKAGE_NAME, --package-name PACKAGE_NAME
Package name
-V VERSION, --version VERSION
Currrent version (default: autodetected using git describe
--always --tags)
--version-suffix VERSION_SUFFIX
Suffix for autodetected version
-c CODE_NAME, --code-name CODE_NAME
Debian code name (default: unstable)
-u URGENCY, --urgency URGENCY
Package urgency (default: medium)
-N MAINTAINER_NAME, --maintainer-name MAINTAINER_NAME
Maintainer name (default: last commit author name)
-E MAINTAINER_EMAIL, --maintainer-email MAINTAINER_EMAIL
Maintainer email (default: last commit author email)
-R RELEASE_NOTES, --release-notes RELEASE_NOTES
Specify an optional Markdown release notes output path
--revision REVISION Specify the revision to use to generate the changelog (see
git-rev-parse for viable options, optional, default:
generate the changelog with all commits of the current
branch)
-C CLEAN_TAGS_REGEX, --clean-tags-regex CLEAN_TAGS_REGEX
Clean tags regex: you could specify regex to clean tag names
when computing package versions. For instance, to drop a
"-eeXXX" suffix of tag names, specify -C "\-ee[0-9]{3}$"
(optional, multiple regex allowed)
-x EXCLUDE, --exclude EXCLUDE
Commit exclusion regex: you could specify regex to exclude
some commits from generated changelog entries. For instance,
to exclude commits with message starting with "CI: ",
specify -x "^CI: " (optional, multiple regex allowed)
Copyright
Copyright (c) 2013-2022 Benjamin Renard brenard@zionetrix.net
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.