Skip to main content

Automatically generate changelogs from merge requests on GitLab.

Project description

Releases Issues Pull requests License

GitLab Changelog Tool

Automatically generate changelogs from merge requests on GitLab.

GitLab Changelog Tool automatically creates changelogs by analyzing merge requests that have been merged since the latest tag for a specific branch. It utilizes a customizable template to generate the changelogs.

Template variables:

  • tag_name
  • tag_url
  • tag_timestamp
  • features
  • improvements
  • bug_fixes
# Changelog

## [{{ tag_name }}]({{ tag_url }}) ({{ tag_timestamp.strftime('%Y-%m-%d') }})
{% if features %}

### New features

{% for feature in features %}
- {{ feature }}
{% endfor %}
{% endif %}
{% if improvements %}

### Improvements

{% for improvement in improvements %}
- {{ improvement }}
{% endfor %}
{% endif %}
{% if bug_fixes %}

### Bug fixes

{% for bug_fix in bug_fixes %}
- {{ bug_fix }}
{% endfor %}
{% endif %}

The tool determines the release version and notes by inspecting the titles and labels of the merge requests:

Scoped labels:

  • type::feature
  • type::improvement
  • type::bugfix

Basic labels:

  • breakingchange

If no merge requests are available, a feature release is generated based on the project description.

The versioning scheme follows the Semantic Versioning (SemVer) specification.

Prerequisites

Installation

Production

Install package:

pip install gitlab-changelog-tool

Development

Install package:

pip install -e .[development]

Note Use the -e, --editable flag to install the package in development mode.

Note Set up a virtual environment for development.

Sort imports:

isort .

Format source code:

autopep8 --recursive --in-place .

Check static typing:

mypy .

Lint source code:

pylint setup.py gitlab_changelog_tool tests/

Test package:

pytest

Report test coverage:

pytest --cov

Hint See also the Makefile for development.

Usage

Generate changelog content:

gitlab-changelog-tool --project-id <project-id> generate

The command-line application will also retrieve configuration from specific environment variables:

  • CI_SERVER_URL
  • GITLAB_ACCESS_TOKEN
  • CI_PROJECT_ID

Copyright and license

Copyright (c) 2023, Danilo Peixoto Ferreira. All rights reserved.

Project developed under BSD-3-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

gitlab_changelog_tool-1.0.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file gitlab_changelog_tool-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for gitlab_changelog_tool-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e6666629b0f8a03db35764a0c81b280aaac22a87d69e39356e432109e3f7ab8c
MD5 ff0e5a3762a11b501306ea54f5d17a18
BLAKE2b-256 f3f45d769420961c1b5409749a07cf1521502186318f81d44892c250c33fba46

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page