# 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 beginning of the file (optional, default: overwriting the file) -n PACKAGE_NAME, --package-name PACKAGE_NAME Package name -V VERSION, --version VERSION Current 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 ## 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.