Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weikangchia/gitcg
Customizable Changelog Generator for GitLab and GitHub using Milestone
https://github.com/weikangchia/gitcg
changelog-generator developer-tools gitlab milestone oclif tools typescript
Last synced: 1 day ago
JSON representation
Customizable Changelog Generator for GitLab and GitHub using Milestone
- Host: GitHub
- URL: https://github.com/weikangchia/gitcg
- Owner: weikangchia
- License: mit
- Created: 2021-04-03T09:10:56.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-09T14:40:04.000Z (5 days ago)
- Last Synced: 2025-02-09T15:33:16.351Z (5 days ago)
- Topics: changelog-generator, developer-tools, gitlab, milestone, oclif, tools, typescript
- Language: TypeScript
- Homepage:
- Size: 373 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git Changelog Generator
**gitcg** is a customizable changelog generator for GitLab and GitHub using milestone.
## Getting Started
### Pre-requisites
- Install [node](https://nodejs.org/en/download/)
- Install gitcg
```
npm install -g gitcg
```### GitLab
- Get a personal token (scopes: `read_api`)
- Store it as a environment variable
```export GITLAB_TOKEN=```### GitHub
- Get a personal token (scopes: `repo`)
- Store it as a environment variable
```export GITHUB_TOKEN=```### Usage
```sh-session
USAGE:
gitcgOPTIONS:
-m, --milestone=milestone title of milestone
-p, --projectPath=projectPath path to project
--config=config custom config file name (default is config.json)
```**Examples**
1. GitHub repo (e.g. https://github.com/weikangchia/gitcg)
```
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
```
2. GitLab repo (e.g. https://gitlab.com/weikangchia/gitcg)
```
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
```
3. 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"
```## Configuration Options
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](#service)
- [serviceUrl](#serviceUrl)
- [sections](#sections)
- [title](#title)
- [labels](#labels)
- [enableContributorsSection](#enableContributorsSection)
- [contributorsToExclude](#contributorsToExclude)
- [contributorTitle](#contributorTitle)
- [enableExternalIssuesTracker](#enableExternalIssuesTracker)
- [externalIssuesUrl](#externalIssuesUrl)
- [externalIssuesProjects](#externalIssuesProjects)
- [enableCommitSha](#enableCommitSha)### service
| Name | Value |
| ------------- |-------------|
| type | string |
| mandatory | true |
| supportedValues | gitlab, github |Example
```json
{
"service": "gitlab"
}
```### serviceUrl
| Name | Value |
| ------------- |-------------|
| type | string |
| mandatory | true |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com"
}
```### sections
| Name | Value |
| ------------- |-------------|
| type | array |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": []
}
```#### title
| Name | Value |
| ------------- |-------------|
| type | string |
| parent | sections |
| mandatory | true |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": [
{
"title": ":star2: New Features",
"labels": ["feature"]
}
]
}
```#### labels
| Name | Value |
| ------------- |-------------|
| type | string |
| parent | sections |
| mandatory | true |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"sections": [
{
"title": ":star2: New Features",
"labels": ["feature"]
}
]
}
```### enableContributorsSection
| Name | Value |
| ------------- |-------------|
| type | boolean |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorTitle": ":heart: Contributors\nWe'd like to thank all the contributors who worked on this sprint!"
}
```### contributorsToExclude
| Name | Value |
| ------------- |-------------|
| type | array |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorsToExclude": ["user1", "user2"],
}
```### contributorTitle
| Name | Value |
| ------------- |-------------|
| type | string |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableContributorsSection": true,
"contributorTitle": ":heart: Contributors\nWe'd like to thank all the contributors who worked on this sprint!"
}
```### enableExternalIssuesTracker
| Name | Value |
| ------------- |-------------|
| type | array |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true
}
```### externalIssuesUrl
| Name | Value |
| ------------- |-------------|
| type | string |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true,
"externalIssuesUrl": "https://youtrack.com/issue",
}
```### externalIssuesProjects
| Name | Value |
| ------------- |-------------|
| type | array |
| mandatory | false |Example
```json
{
"service": "gitlab",
"serviceUrl": "https://gitlab.com",
"enableExternalIssuesTracker": true,
"externalIssuesUrl": "https://youtrack.com/issue",
"externalIssuesProjects": ["PROJ1", "PROJ2"],
}
```### enableCommitSha
| Name | Value |
| ------------- |-------------|
| type | boolean |
| mandatory | false |Example
```json
{
"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
}
```## License
Distributed under the MIT License. See [LICENSE](license) for more information.
## Contributing
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.## Contact
Wei Kang - weikangchia[@]gmail.com