Grab recent issue/PR activity from a GitLab repository and render it as markdown.
Project description
GitLab Changelog Generator
CI/CD | |
Docs | |
Package | |
Meta |
What is it about?
Generate simple markdown changelogs for GitLab repositories. GitLab provides an API endpoint to generate Changelogs. However, this endpoint assumes that repository is using Git trailers in the commit message. If no Git trailers are found in the commit messages, the API endpoint returns nothing.
This is a huge problem for a lot of projects (including us) that do not use Git trailers. Although it is a good practice to use Git trailers we tend to forget them and it increases development time. Moreover we are more concerned to have MRs listed in the changelogs and we can tag MRs with labels that identify the type of MR. We can generate a changelog using these labels and group MRs according to the labels.
This is what this little package does to generate changelogs. In a nutshell, it does two things:
- Given a GitLab (upstream or self hosted) repository, an initial git reference or date, use the GitLab GraphQL API to return a DataFrame of all issue and MR activity for this time period.
- A CLI to render this activity as markdown, suitable for generating changelogs.
Prior art
- gitlab-changelog-generator is a command line utility distributed as Python package to generate changelogs. However, it is mostly outdated and I could not make it work as of 2023.
- gitlab-changelog-generator is another tool to generate changelogs based on Ruby. However there has been no development since last few years.
Features
- Users can configure the labels and their descriptions that they use in their projects
gitlab-activity
configuration supportspyproject.toml
for Python projects,package.json
for Node projects. For other projects, configuration can be included in a file.gitlab-activity.toml
in the root of the repository.- It can be integrated into CI release jobs to update the changelogs from last stable tag to current before making the release.
:::important
This tool is heavily inspired from github-activity developed by the folks at Jupyter project. All the credit should go to them and we thank them.
:::
Installation
The easiest way to install this package is via pip
:
pip install gitlab-activity
Usage
The easiest way to use gitlab-activity
to generate activity markdown is to use
the command-line interface. It takes the following form:
gitlab-activity -t [<group>/<repo>]
This will output a markdown with MRs activity since last tag.
:::tip
The Changelog
file of the current repository is being generated by gitlab-activity
. Have a look
into CI
file on how it is being done.
:::
Configuration
All the CLI options can be configured via configuration file. An example config file can be used as a reference.
As stated above the configuration can be integrated into pyproject.toml
in
[tool.gitlab-activity]
section or package.json
in gitlab-activity
key.
To run the tests
The easiest way to run the test suite is using pytest
.
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gitlab_activity-0.1.3.tar.gz
.
File metadata
- Download URL: gitlab_activity-0.1.3.tar.gz
- Upload date:
- Size: 109.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39e7bccb35e10b728965f0770934d18e31e6c7e7a8174ff576a5de24897ea4db |
|
MD5 | 26356469d21c2b83abd2f8ac712d9ff5 |
|
BLAKE2b-256 | 77f22e8cf65264676cd7ff7543b8166a391ea6f95c0e89866052b5f07a82ce4b |
File details
Details for the file gitlab_activity-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: gitlab_activity-0.1.3-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d8e181aecf0aafd0954347ebcad96c559100ee3a453cf3c23ad1cdc036b3696 |
|
MD5 | d8570ca7e2539f54ecb42e1333b5a0c4 |
|
BLAKE2b-256 | f2cb21cb7d0f96bf669a2d4493d2a0300b07c877a1dc657a7cffe13703267dbd |