Automatically generate changelogs from merge requests on GitLab.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file gitlab_changelog_tool-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: gitlab_changelog_tool-1.0.2-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6666629b0f8a03db35764a0c81b280aaac22a87d69e39356e432109e3f7ab8c |
|
MD5 | ff0e5a3762a11b501306ea54f5d17a18 |
|
BLAKE2b-256 | f3f45d769420961c1b5409749a07cf1521502186318f81d44892c250c33fba46 |