Skip to content
Iryna Lagno edited this page Jul 13, 2021 · 6 revisions

Adobe Changelog Generator is the core package that is used to generate a changelog file.

Configuration

List of content

Location

aio-cli-plugin-changelog can read the configuration from the following locations:

  • Local machine (Required to provide a link to the configuration when running the command).
    Example: aio changelog:generate -c ./config.json
  • AIO CLI Config (aio-cli-plugin-config). You will need to set your config under changelog namespace in AIO Config.
    Example: aio config set CHANGELOG -f ./config.json
  • Project repository.
    The config should be committed to the .github folder with the changelog.json name.
    Make sure that provided Github token has read access to the repository!
    Example: .github/changelog.json

Merging

The configuration from the local machine or from AIO Config will be merged with the remote configuration stored in the project repository.

The application will use the merged configuration to generate a changelog.

Merge prioritization is set up in favor of local machine/AIO configuration. It means that in case when local machine/AIO configuration declares the same option as remote config, the option value will be overridden by the local machine/AIO configuration.

Example:

Local Machine / AIO Config Remote Project Repository Result (merged) Config file
"adobe/aio-cli-plugin-changelog:master": {
    "output": {
        "template": "pullrequest",
        "filename": "custom.md"
    }
}
"adobe/aio-cli-plugin-changelog:master": {
    "output": {
        "template": "issue",
        "filename": "changelog.md",
        "strategy": "merge"
    }
}
"adobe/aio-cli-plugin-changelog:master": {
    "output": {
        "template": "pullrequest",
        "filename": "custom.md",
        "strategy": "merge"
    }
}

Options

Option Is Required Default Nested options Example Description
<organization>/<repository>:<branch> required (see namespace) - adobe/aio-cli-plugin-changelog:master A combination of organization, repository, and branch is named namespace. Thus, the config can contain multiple namespaces. The tool asynchronously generates a changelog for each namespace
combine false - releaseLine - Provide a list of related namespaces. For example, if your project consists of multiple repositories and you want to create a changelog which will contain data from all repositories, you should use this option
releaseLine false see release line - - Define from-to brackets to collect content
loader true - see Loader options - Responsible for loading pull request or issue data from GitHub
output false see see Output options see Output options - Output file configuration

Namespace

<organization>/<repository>:<branch>

Option Is Required Example Description
<organization> true adobe Project organization
<repository> true aio-cli-plugin-changelog Project repository
<branch> false master Project branch

Release line

<from>..<to>@<version>:<filter>

Option Default Value Types Description
<from> current see Release Line Types Starting point. Example: 1.1..1.3 will include information about 1.1 release.
<to> now see Release Line Types Ending point
<version> patch see Version Types The version for next release
<filter> - RegExp Filter RegExp. Use it for excluding some releases

Loader options

Option Avaliable values Description
name
  • pullrequest
  • Loader name
    config see Loader config options Loader config

    Output options

    Option Is Required Default Avaliable values Description
    strategy false merge see Output strategies list Responsible for output file
    format false md
  • md
  • json
  • json-format-magento
  • Format for output file
    template true -
  • pullrequest
  • Template name
    filename true - - Output file name
    path false - - Folder path. The result file will be created in the same directory with the config file

    Output strategies list

    Option Description
    merge Merge with an existing file
    create Create a new file

    Loader config options

    Option Is Required Avaliable values Description
    exclude false
  • labels
  • Excludes some data based on the defined criteria
    groupBy false
  • labels
  • Group the data based on the defined criteria

    Version Types

    See semantic versioning to get more info about possible release types.

    Option Example Description
    patch 1.0.0 -> 1.0.1 Increment patch version of the last release
    minor 1.0.0 -> 1.1.0 Increment minor version of the last release
    major 1.0.0 -> 2.0.0 Increment major version of the last release
    custom 1.2.3-custom Custom version

    Release Line Types

    Option Example Description
    tag 1.0.0 Github tag
    hash fd7ebb1d0cd224e0957c035faafdffd9bd2b2b87 Github commit hash
    date YYYY-MM-DD Date in ISO8601 format
    special-words see Release Line Special words The application supports the list of predefined special-words

    Release Line Special words

    Option Description
    now Current date and time
    current Start date of not released version
    start Start date of first stable release

    Example

    {
      "<organization>/<repository>:<branch>": {
        "releaseLine": "<from>..<to>@<version>:<filter>"
        "combine": {
          "<organization>/<repository>:<branch>": {
            "releaseLine": "<from>..<to>@<version>:<filter>"
          },
          "<organization>/<repository>:<branch>": {
            "releaseLine": "<from>..<to>@<version>:<filter>"
          }
        },
        "loader": {
          "name": "<loader-name>",
          "config": {
            "exclude": {
              "<filter>": <filter-config>
            },
            "groupBy": {
              "name": <group-name>,
              "config": {
                <configuration>  
              }
            }
          }
        }
        "output": {
          "strategy": "<strategy-type>",
          "template": "<template-name>",
          "filename": "<file-name>",
          "projectPath": "<project-path>"
        }
      }
    }