0.1.2 • Published 2 years ago

gitcg v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Git Changelog Generator

gitcg is a customizable changelog generator for GitLab and GitHub using milestone.

Getting Started

Pre-requisites

  • Install node
  • Install gitcg
    npm install -g gitcg

GitLab

  • Get a personal token (scopes: read_api)
  • Store it as a environment variable export GITLAB_TOKEN=<your personal GitLab token>

GitHub

  • Get a personal token (scopes: repo)
  • Store it as a environment variable export GITHUB_TOKEN=<your personal GitHub token>

Usage

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

  1. GitHub repo (e.g. https://github.com/weikangchia/gitcg)
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
  1. GitLab repo (e.g. https://gitlab.com/weikangchia/gitcg)
gitcg -m "v0.1.0" -p "weikangchia/gitcg"
  1. 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

NameValue
typestring
mandatorytrue
supportedValuesgitlab, github

Example

{
  "service": "gitlab"
}

serviceUrl

NameValue
typestring
mandatorytrue

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com"
}

sections

NameValue
typearray
mandatoryfalse

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "sections": []
}

title

NameValue
typestring
parentsections
mandatorytrue

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "sections": [
    {
      "title": ":star2: New Features",
      "labels": ["feature"]
    }
  ]
}

labels

NameValue
typestring
parentsections
mandatorytrue

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "sections": [
    {
      "title": ":star2: New Features",
      "labels": ["feature"]
    }
  ]
}

enableContributorsSection

NameValue
typeboolean
mandatoryfalse

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!"
}

contributorsToExclude

NameValue
typearray
mandatoryfalse

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "enableContributorsSection": true,
  "contributorsToExclude": ["user1", "user2"],
}

contributorTitle

NameValue
typestring
mandatoryfalse

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!"
}

enableExternalIssuesTracker

NameValue
typearray
mandatoryfalse

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "enableExternalIssuesTracker": true
}

externalIssuesUrl

NameValue
typestring
mandatoryfalse

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "enableExternalIssuesTracker": true,
  "externalIssuesUrl": "https://youtrack.com/issue",
}

externalIssuesProjects

NameValue
typearray
mandatoryfalse

Example

{
  "service": "gitlab",
  "serviceUrl": "https://gitlab.com",
  "enableExternalIssuesTracker": true,
  "externalIssuesUrl": "https://youtrack.com/issue",
  "externalIssuesProjects": ["PROJ1", "PROJ2"],
}

enableCommitSha

NameValue
typeboolean
mandatoryfalse

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
}

License

Distributed under the MIT License. See 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