README.md

    git-changelog

    ci documentation pypi version gitpod gitter

    Automatic Changelog generator using Jinja2 templates. From git logs to change logs.

    Отличия форка

    1. Изменение поведения опции bump по-умолчанию и новый параметр --major-version-zero

      • Предпосылки: Когда у вас текущая версия 0.x.x, а новые коммиты содержат флаг глобальных изменений, то при использовании git-changelog --bump=auto у вас вместо мажорной версии в списке изменений обновится минорная. Для перехода с 0.x.x на 1.0.0 приходится вручную использовать git-changelog --bump 1.0.0. В git-changelog нет опции настроить поведение автоматического поднятия версий 0.x.x релизов.
      • Решение в форке: По-умолчанию мажорная версия обновляется всегда при наличии глобальных изменений, даже если у вас релиз 0.x.x. Добавлен параметр --major-version-zero по примеру утилиты commitizen, позволяющий вернуть изначальное поведение.
    2. Кастомизация типов соглашений

      • Предпосылки: Невозможно добавить свои типы для парсинга коммитов, невозможно переопределить существующие (например, для русификации секций в списке изменений).
      • Решение в форке: Добавлена возможность через конфигурационные файлы настроить свой массив типов. При использовании кастомизированных типов есть возможность переопределить какие из представленных типов будут флагом для обновления минорной версии.
    3. В случае использования origin вида https://user:token@host.ru, ваши данные user:token не попадут в URL.
    4. Документация и тесты обновлены в соответствии со внесенными изменениями, более подробные примеры использования можно увидеть в docs/usage.md

    Features

    Installation

    With pip:

    pip install git-changelog
    

    With pipx:

    python3.8 -m pip install --user pipx
    pipx install git-changelog
    

    Usage (command-line)

    usage: git-changelog [-b] [-h] [-i] [-g VERSION_REGEX] [-m MARKER_LINE]
                         [-o OUTPUT] [-r] [-R] [-I INPUT]
                         [-c {angular,conventional,basic}] [-s SECTIONS]
                         [-t {angular,keepachangelog}] [-T] [-E] [-v]
                         [REPOSITORY]
    
    Automatic Changelog generator using Jinja2 templates.
    
    This tool parses your commit messages to extract useful data
    that is then rendered using Jinja2 templates, for example to
    a changelog file formatted in Markdown.
    
    Each Git tag will be treated as a version of your project.
    Each version contains a set of commits, and will be an entry
    in your changelog. Commits in each version will be grouped
    by sections, depending on the commit convention you follow.
    
    BASIC CONVENTION
    
    Default sections:
    - add: Added
    - fix: Fixed
    - change: Changed
    - remove: Removed
    
    Additional sections:
    - merge: Merged
    - doc: Documented
    
    ANGULAR CONVENTION
    
    Default sections:
    - feat: Features
    - fix: Bug Fixes
    - revert: Reverts
    - ref, refactor: Code Refactoring
    - perf: Performance Improvements
    
    Additional sections:
    - build: Build
    - chore: Chore
    - ci: Continuous Integration
    - deps: Dependencies
    - doc, docs: Docs
    - style: Style
    - test, tests: Tests
    
    CONVENTIONALCOMMIT CONVENTION
    
    Default sections:
    - feat: Features
    - fix: Bug Fixes
    - revert: Reverts
    - ref, refactor: Code Refactoring
    - perf: Performance Improvements
    
    Additional sections:
    - build: Build
    - chore: Chore
    - ci: Continuous Integration
    - deps: Dependencies
    - doc, docs: Docs
    - style: Style
    - test, tests: Tests
    
    positional arguments:
      REPOSITORY            The repository path, relative or absolute. Default: .
    
    options:
      -b, --bump-latest     Deprecated, use --bump=auto instead.
                            Guess the new latest version by bumping the previous
                            one based on the set of unreleased commits. For
                            example, if a commit contains breaking changes, bump
                            the major number (or the minor number for 0.x
                            versions). Else if there are new features, bump the
                            minor number. Else just bump the patch number.
                            Default: False.
      --bump VERSION        Specify the bump from latest version for the set
                            of unreleased commits. Can be one of 'auto',
                            'major', 'minor', 'patch' or a valid semver version
                            (eg. 1.2.3). With 'auto', if a commit contains breaking
                            changes, bump the major number, else if there are new features,
                            bump the minor number, else just bump the patch number.
                            Default: None.
      --major-version-zero  When true, breaking changes on a 0.x will remain as a 0.x version.
                            On false, a breaking change will bump a 0.x version to 1.0. 
                            major-version-zero. Default: unset (false).
      -h, --help            Show this help message and exit.
      -i, --in-place        Insert new entries (versions missing from changelog)
                            in-place. An output file must be specified. With
                            custom templates, you can pass two additional
                            arguments: --version-regex and --marker-line. When
                            writing in-place, an 'in_place' variable will be
                            injected in the Jinja context, allowing to adapt the
                            generated contents (for example to skip changelog
                            headers or footers). Default: False.
      -g, --version-regex VERSION_REGEX
                            A regular expression to match versions in the existing
                            changelog (used to find the latest release) when
                            writing in-place. The regular expression must be a
                            Python regex with a 'version' named group. Default:
                            ^## \[(?P<version>v?[^\]]+).
      -m, --marker-line MARKER_LINE
                            A marker line at which to insert new entries (versions
                            missing from changelog). If two marker lines are
                            present in the changelog, the contents between those
                            two lines will be overwritten (useful to update an
                            'Unreleased' entry for example). Default:
                            <!-- insertion marker -->.
      -o, --output OUTPUT   Output to given file. Default: stdout.
      -p {github,gitlab}, --provider {github,gitlab}
                            Explicitly specify the repository provider.
      -r, --parse-refs      Parse provider-specific references in commit messages
                            (GitHub/GitLab/Bitbucket issues, PRs, etc.). Default: False.
      -R, --release-notes   Output release notes to stdout based on the last entry
                            in the changelog. Default: False.
      -I, --input INPUT     Read from given file when creating release notes.
                            Default: CHANGELOG.md.
      -c, --style, --commit-style, --convention {angular,conventional,basic}
                            The commit convention to match against. Default:
                            basic.
      -s, --sections SECTIONS
                            A comma-separated list of sections to render. See the
                            available sections for each supported convention in
                            the description. Default: None.
      -t {angular,keepachangelog}, --template {angular,keepachangelog}
                            The Jinja2 template to use. Prefix with "path:" to
                            specify the path to a directory containing a file
                            named "changelog.md". Default: keepachangelog.
      -T, --trailers, --git-trailers
                            Parse Git trailers in the commit message. See
                            https://git-scm.com/docs/git-interpret-trailers.
                            Default: False.
      -E, --omit-empty-versions
                            Omit empty versions in the output. Default: False.
      -v, --version         Show the current version of the program and exit.
    
    Описание

    Форк генератора списка изменений с обновленным функционалом

    Конвейеры
    0 успешных
    0 с ошибкой