Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add issuePrefixes to config #25

Merged
merged 1 commit into from
Aug 20, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
## Versions

- [v1.0.0](versions/1.0.0/README.md)
- [v2.0.0](versions/2.0.0/README.md) - *Current*
- [v2.0.0](versions/2.0.0/README.md)
- [v2.1.0](versions/2.1.0/README.md) - *Current*
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = require('./versions/2.0.0/schema.json')
module.exports = require('./versions/2.1.0/schema.json')
166 changes: 166 additions & 0 deletions versions/2.1.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# Conventional Changelog Configuration Spec (v2.1.0)

## Structure

- [header](#header-string)
- [types](#types)
- [type](#type)
- [preMajor](#premajor-boolean)
- [commitUrlFormat](#commiturlformat-string)
- [compareUrlFormat](#compareurlformat-string)
- [issueUrlFormat](#issueurlformat-string)
- [userUrlFormat](#userurlformat-string)
- [releaseCommitMessageFormat](#releasecommitmessageformat-string)
- [issuePrefixes](#issueprefixes-array-of-string)

## Substitutions
- [host](#host)
- [owner](#owner)
- [repository](#repository)
- [hash](#hash)
- [previousTag](#previoustype)
- [currentTag](#currenttag)

---

### header (`string`)

A string to be used as the main header of the CHANGELOG.

```
Changelog
```

### types

An array of [`type`](#type) objects representing the explicitly supported commit message types, and whether they should show up in generated CHANGELOGs.

```json
"types": [
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bug Fixes"},
{"type": "chore", "hidden": true},
{"type": "docs", "hidden": true},
{"type": "style", "hidden": true},
{"type": "refactor", "hidden": true},
{"type": "perf", "hidden": true},
{"type": "test", "hidden": true}
]
```

#### type

| name | type | required | default | description |
| ------------------------- | --------- | --------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
| **type** | `string` | ✔️ | `N/A` | A string used to match `<type>`s used in the [Conventional Commits](https://www.conventionalcommits.org) convention. |
| **section** | `string` | ✖️ | `N/A` | The section where the matched commit `type` will display in the CHANGELOG. |
| **hidden** | `boolean` | ✖️ | `N/A` | Set to `true` to hide matched commit `type`s in the CHANGELOG. |

### preMajor (`boolean`)

Boolean indicating whether or not the action being run (generating CHANGELOG,
recommendedBump, etc.) is being performed for a pre-major release (`<1.0.0`).

This config setting will generally be set by tooling and not a user.

### commitUrlFormat (`string`)

A URL representing a specific commit at a hash.

```
{{host}}/{{owner}}/{{repository}}/commit/{{hash}}
```

See [Substitutions](#substitutions-1) for more details on substitutions.

### compareUrlFormat (`string`)

A URL representing the comparison between two git shas.

```
{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}
```

See [Substitutions](#substitutions-1) for more details on substitutions.

### issueUrlFormat (`string`)

A URL representing the issueformat (allowing a different URL format to be swapped in for Gitlab, Bitbucket, etc):

```
{{host}}/{{owner}}/{{repository}}/issues/{{id}}
```

See [Substitutions](#substitutions-1) for more details on substitutions.

### userUrlFormat (`string`)

A URL representing the a user's profile URL on GitHub, Gitlab, etc. This URL
is used for substituting `@bcoe` with `https://github.com/bcoe` in commit
messages.

```
{{host}}/{{user}}
```

See [Substitutions](#substitutions-1) for more details on substitutions.

### releaseCommitMessageFormat (`string`)

A string to be used to format the auto-generated release commit message.

```
chore(release): {{currentTag}}
```

See [Substitutions](#substitutions-1) for more details on substitutions.

### issuePrefixes (array of `string`)

An array of prefixes used to detect references to issues

```
['#']
```



## Substitutions

All substitutions use [Handlebar](https://handlebarsjs.com/) syntax and templating and will be interpolated as a `string`.

### {{host}}
Default: Normalized host found in `package.json`.

Available to: `commitUrlFormat`, `compareUrlFormat`, `issueUrlFormat`

### {{owner}}
Default: Extracted from normalized `package.json` `repository.url` field.

Available to: `commitUrlFormat`, `compareUrlFormat`, `issueUrlFormat`

### {{repository}}
Default: Extracted from normalized `package.json` `repository.url` field.

Available to: `commitUrlFormat`, `compareUrlFormat`, `issueUrlFormat`

### {{hash}}
Default: The commit hash of the tagged release.

Available to: `commitUrlFormat`

### {{previousTag}}
Default: Previous [semver](https://semver.org/) tag or the first commit hash if no previous tag is available.

Available to: `compareUrlFormat`

### {{currentTag}}
Default: Current [semver](https://semver.org/) tag or or `'v' + version` if no current tag is available.

Available to: `compareUrlFormat`

### {{user}}
Default: username to the right-hand-side of the `@` symbol in `@user` shorthand.

Available to: `userUrlFormat`

97 changes: 97 additions & 0 deletions versions/2.1.0/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Conventional Changelog Configuration",
"description": "Describes the configuration options supported by conventional-config for upstream tooling.",
"type": "object",
"properties": {
"header": {
"type": "string",
"description": "A string to be used as the main header section of the CHANGELOG.",
"default": "# Changelog\n\n"
},
"types": {
"description": "An array of `type` objects representing the explicitly supported commit message types, and whether they should show up in generated `CHANGELOG`s.",
"type": "array",
"items": {
"$ref": "#/definitions/type"
},
"default": [
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bug Fixes"},
{"type": "chore", "hidden": true},
{"type": "docs", "hidden": true},
{"type": "style", "hidden": true},
{"type": "refactor", "hidden": true},
{"type": "perf", "hidden": true},
{"type": "test", "hidden": true}
]
},
"preMajor": {
"type": "boolean",
"description": "Boolean indicating whether or not the action being run (generating CHANGELOG, recommendedBump, etc.) is being performed for a pre-major release (<1.0.0).\n This config setting will generally be set by tooling and not a user.",
"default": false
},
"commitUrlFormat": {
"type": "string",
"description": "A URL representing a specific commit at a hash.",
"default": "{{host}}/{{owner}}/{{repository}}/commit/{{hash}}"
},
"compareUrlFormat": {
"type": "string",
"description": "A URL representing the comparison between two git SHAs.",
"default": "{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}"
},
"issueUrlFormat": {
"type": "string",
"description": "A URL representing the issue format (allowing a different URL format to be swapped in for Gitlab, Bitbucket, etc).",
"default": "{{host}}/{{owner}}/{{repository}}/issues/{{id}}"
},
"userUrlFormat": {
"type": "string",
"description": "A URL representing the a user's profile URL on GitHub, Gitlab, etc. This URL is used for substituting @bcoe with https://github.com/bcoe in commit messages.",
"default": "{{host}}/{{user}}"
},
"releaseCommitMessageFormat": {
"type": "string",
"description": "A string to be used to format the auto-generated release commit message.",
"default": "chore(release): {{currentTag}}"
},
"issuePrefixes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of prefixes used to detect references to issues",
"default": ["#"]
}
},
"definitions": {
"type": {
"description": "An object that describes a commit type's settings in the CHANGELOG",
"type": "object",
"properties": {
"type": {
"description": "A string used to match <type>s used in the Conventional Commits convention.",
"type": "string"
},
"section": {
"description": "The section where the matched commit type will display in the CHANGELOG.",
"type": "string"
},
"hidden": {
"description": "Set to `true` to hide matched commit types in the CHANGELOG.",
"type": "boolean"
}
},
"required": ["type"],
"oneOf": [
{
"required": ["section"]
},
{
"required": ["hidden"]
}
]
}
}
}