gitcg is a customizable changelog generator for GitLab and GitHub using milestone.
- Install node
- Install gitcg
npm install -g gitcg
- Get a personal token (scopes:
read_api
) - Store it as a environment variable
export GITLAB_TOKEN=<your personal GitLab token>
- Get a personal token (scopes:
repo
) - Store it as a environment variable
export GITHUB_TOKEN=<your personal GitHub token>
USAGE:
gitcg
OPTIONS:
-m, --milestone=milestone title of milestone
-p, --projectPath=projectPath path to project
--config=config custom config file name (default is config.json)
Examples
- GitHub repo (e.g. https://github.com/weikangchia/gitcg)
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
- GitLab repo (e.g. https://gitlab.com/weikangchia/gitcg)
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
- Other config files
If you are managing multiple repo or projects and have different configuration, you could create different configuration files in the config folder and use them.
gitcg -m "v0.1.0" -p "weikangchia/gitcg" --config="config-github.json"
gitcg -m "v0.1.0" -p "weikangchia/gitcg" --config="config-gitlab.json"
By default gitcg reads all configurable options from config.json
at the following location
Unix: ~/.config/gitcg
Windows: %LOCALAPPDATA%\gitcg
Can be overridden with XDG_CONFIG_HOME
Below are the available configurable options.
- service
- serviceUrl
- sections
- enableContributorsSection
- contributorsToExclude
- contributorTitle
- enableExternalIssuesTracker
- externalIssuesUrl
- externalIssuesProjects
- enableCommitSha
Name | Value |
---|---|
type | string |
mandatory | true |
supportedValues | gitlab, github |
Example
{
"service": "gitlab"
}
Name | Value |
---|---|
type | string |
mandatory | true |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com"
}
Name | Value |
---|---|
type | array |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": []
}
Name | Value |
---|---|
type | string |
parent | sections |
mandatory | true |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": [
{
"title": ":star2: New Features",
"labels": ["feature"]
}
]
}
Name | Value |
---|---|
type | string |
parent | sections |
mandatory | true |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": [
{
"title": ":star2: New Features",
"labels": ["feature"]
}
]
}
Name | Value |
---|---|
type | boolean |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorTitle": ":heart: Contributors\nWe'd like to thank all the contributors who worked on this sprint!"
}
Name | Value |
---|---|
type | array |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorsToExclude": ["user1", "user2"],
}
Name | Value |
---|---|
type | string |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorTitle": ":heart: Contributors\nWe'd like to thank all the contributors who worked on this sprint!"
}
Name | Value |
---|---|
type | array |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true
}
Name | Value |
---|---|
type | string |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true,
"externalIssuesUrl": "https://youtrack.com/issue",
}
Name | Value |
---|---|
type | array |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true,
"externalIssuesUrl": "https://youtrack.com/issue",
"externalIssuesProjects": ["PROJ1", "PROJ2"],
}
Name | Value |
---|---|
type | boolean |
mandatory | false |
Example
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableCommitSha": true
}
Example
{
"service": "github",
"serviceUrl": "https://github.com",
"sections": [
{
"title": ":star2: New Features",
"labels": ["feature"]
},
{
"title": ":bug: Bug Fixes",
"labels": ["bug"]
},
{
"title": ":barber: Tasks",
"labels": ["task"]
},
{
"title": ":lock: Security Fixes",
"labels": ["security"]
},
{
"title": ":arrow_up: Dependency Upgrades",
"labels": ["dependency-upgrade"]
}
],
"enableContributorsSection": true,
"contributorsToExclude": ["renovate_bot"],
"contributorTitle": ":heart: Contributors\nWe'd like to thank all the contributors who worked on this milestone!",
"enableExternalIssuesTracker": false,
"enableCommitSha": true
}
Distributed under the MIT License. See LICENSE for more information.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
Wei Kang - weikangchia[@]gmail.com