8 minute read

Here you can find the example of a large configuration in the supported formats.

This configuration doesn’t use any preset but sets many global configuration options explicitly along with commit message conventions and release types. Where allowed, templates are also used.

Configuration options using templates may not be rendered correctly in this page so please refer to the links to source code provided for each file.

JSON

{
  "changelog": {
    "append": "head",
    "path": "CHANGELOG.md",
    "sections": {
      "Added": "^feat$",
      "Fixed": "^fix$"
    },
    "substitutions": {
      "(?m)#([0-9]+)(?s)": "[#%s](https://example.com/issues/%s)"
    }
  },
  "commitMessageConventions": {
    "enabled": [
      "conventionalCommits"
    ],
    "items": {
      "conventionalCommits": {
        "expression": "(?m)^(?<type>[a-zA-Z0-9_]+)(\\((?<scope>[a-z ]+)\\))?(!)?:( (?<title>.+))$(?s).*",
        "bumpExpressions": {
          "major": "(?s)(?m)^[a-zA-Z0-9_]+(\\([a-z ]+\\))?(!: .*|.*^(BREAKING( |-)CHANGE: )).*",
          "minor": "(?s)(?m)^feat(!{0})(\\([a-z ]+\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*",
          "patch": "(?s)(?m)^fix(!{0})(\\([a-z ]+\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*"
        }
      }
    }
  },
  "configurationFile": ".nyx.json",
  "dryRun": false,
  "git": {
    "remotes": {
      "origin": {
        "authenticationMethod": "USER_PASSWORD",
        "user": "jdoe",
        "password": "somepassword"
      },
      "replica": {
        "authenticationMethod": "PUBLIC_KEY",
        "privateKey": ".ssh/id_ed25519",
        "passphrase": "somesecretpassphrase"
      }
    }
  },
  "initialVersion": "1.0.0",
  "preset": "extended",
  "releaseAssets": {
    "asset1": {
      "fileName": "asset.txt",
      "description": "Text Asset",
      "type": "text/plain",
      "path": "asset.txt"
    },
    "asset2": {
      "fileName": "asset.bin",
      "description": "Binary Asset",
      "type": "application/octet-stream",
      "path": "asset.bin"
    }
  },
  "releaseLenient": true,
  "releasePrefix": "v",
  "releaseTypes": {
    "enabled": [
      "mainline",
      "maturity",
      "integration",
      "hotfix",
      "feature",
      "release",
      "maintenance",
      "internal"
    ],
    "publicationServices": [
      "github",
      "gitlab"
    ],
    "remoteRepositories": [
      "origin",
      "replica"
    ],
    "items": {
      "mainline": {
        "collapseVersions": false,
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$",
        "gitCommit": "false",
        "gitCommitMessage": "Release version ",
        "gitPush": "true",
        "gitPushForce": "true",
        "gitTag": "true",
        "gitTagForce": "true",
        "gitTagMessage": "Tag version ",
        "gitTagNames": [
          "",
          "stable",
          "latest"
        ],
        "matchBranches": "^(master|main)$",
        "matchEnvironmentVariables": {
          "CI": "^true$"
        },
        "matchWorkspaceStatus": "CLEAN",
        "publish": "true",
        "releaseName": "Release ",
        "versionRangeFromBranchName": false
      },
      "maturity": {
        "collapseVersions": true,
        "collapsedVersionQualifier": "",
        "description": "Maturity release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)(\\.([0-9]\\d*))?)?$",
        "gitCommit": "false",
        "gitPush": "true",
        "gitTag": "true",
        "gitTagNames": [
          ""
        ],
        "matchBranches": "^(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)$",
        "matchWorkspaceStatus": "CLEAN",
        "publish": "true",
        "publishPreRelease": "true",
        "versionRangeFromBranchName": false
      },
      "integration": {
        "assets": [],
        "collapseVersions": true,
        "collapsedVersionQualifier": "",
        "description": "Integration release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(develop|development|integration|latest)(\\.([0-9]\\d*))?)$",
        "gitCommit": "false",
        "gitPush": "true",
        "gitTag": "true",
        "gitTagNames": [
          ""
        ],
        "matchBranches": "^(develop|development|integration|latest)$",
        "matchWorkspaceStatus": "CLEAN",
        "publish": "true",
        "publishPreRelease": "true",
        "versionRangeFromBranchName": false
      },
      "feature": {
        "collapseVersions": true,
        "collapsedVersionQualifier": "",
        "description": "Feature release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(feat|feature)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$",
        "gitCommit": "false",
        "gitPush": "false",
        "gitTag": "false",
        "matchBranches": "^(feat|feature)((-|\\/)[0-9a-zA-Z-_]+)?$",
        "publish": "false",
        "publishPreRelease": "true",
        "versionRangeFromBranchName": false
      },
      "hotfix": {
        "assets": [
          "asset1"
        ],
        "collapseVersions": true,
        "collapsedVersionQualifier": "",
        "description": "Hotfix release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(fix|hotfix)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$",
        "gitCommit": "false",
        "gitPush": "true",
        "gitTag": "true",
        "gitTagNames": [
          ""
        ],
        "matchBranches": "^(fix|hotfix)((-|\\/)[0-9a-zA-Z-_]+)?$",
        "matchWorkspaceStatus": "CLEAN",
        "publish": "true",
        "publishPreRelease": "true",
        "versionRangeFromBranchName": false
      },
      "release": {
        "collapseVersions": true,
        "collapsedVersionQualifier": "",
        "description": "Release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(rel|release)((\\.([0-9]\\d*))?)?)$",
        "gitCommit": "false",
        "gitPush": "true",
        "gitTag": "true",
        "gitTagNames": [
          ""
        ],
        "matchBranches": "^(rel|release)(-|\\/)()?([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$",
        "matchWorkspaceStatus": "CLEAN",
        "publish": "false",
        "versionRangeFromBranchName": true
      },
      "maintenance": {
        "collapseVersions": false,
        "description": "Maintenance release ",
        "filterTags": "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$",
        "gitCommit": "false",
        "gitPush": "true",
        "gitTag": "true",
        "gitTagNames": [
          ""
        ],
        "matchBranches": "^[a-zA-Z]*([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$",
        "matchWorkspaceStatus": "CLEAN",
        "publish": "true",
        "versionRangeFromBranchName": true
      },
      "internal": {
        "collapseVersions": true,
        "collapsedVersionQualifier": "internal",
        "description": "Internal release ",
        "gitCommit": "false",
        "gitPush": "false",
        "gitTag": "false",
        "identifiers": [
          {
            "position": "BUILD",
            "qualifier": "user",
            "value": ""
          },
          {
            "position": "BUILD",
            "qualifier": "timestamp",
            "value": ""
          },
          {
            "position": "BUILD",
            "qualifier": "commit",
            "value": ""
          },
          {
            "position": "BUILD",
            "qualifier": "branch",
            "value": ""
          }
        ],
        "publish": "false",
        "publishDraft": "true",
        "versionRangeFromBranchName": false
      }
    }
  },
  "resume": true,
  "scheme": "SEMVER",
  "services": {
    "github": {
      "type": "GITHUB",
      "options": {
        "AUTHENTICATION_TOKEN": "GITHUB_TOKEN",
        "REPOSITORY_NAME": "myrepo",
        "REPOSITORY_OWNER": "acme"
      }
    },
    "gitlab": {
      "type": "GITLAB",
      "options": {
        "AUTHENTICATION_TOKEN": "abcde-a1b2c3d4e5f6g7h8i9j0",
        "REPOSITORY_NAME": "myrepo",
        "REPOSITORY_OWNER": "acme"
      }
    }
  },
  "sharedConfigurationFile": "example-shared.config.json",
  "substitutions": {
    "enabled": [
      "npm",
      "rust"
    ],
    "items": {
      "npm": {
        "files": "package.json",
        "match": "\"version\"(\\s)*:(\\s)*\"(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?\"",
        "replace": "\"version\": \"\""
      },
      "rust": {
        "files": "Cargo.toml",
        "match": "version(\\s)*=(\\s)*(\"|')(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?(\"|')",
        "replace": "version = \"\""
      }
    }
  },
  "summary": true,
  "summaryFile": ".nyx-summary.txt",
  "stateFile": ".nyx-state.yml",
  "verbosity": "INFO",
  "version": "1.8.12"
}

Source code for this file is available here.

YAML

--- 
changelog:
  append: "head"
  path: "CHANGELOG.md"
  sections:
    "Added": "^feat$"
    "Fixed": "^fix$"
  substitutions:
    "(?m)#([0-9]+)(?s)": "[#%s](https://example.com/issues/%s)"
commitMessageConventions: 
  enabled: 
    - conventionalCommits
  items: 
    conventionalCommits: 
      expression: "(?m)^(?<type>[a-zA-Z0-9_]+)(\\((?<scope>[a-z ]+)\\))?(!)?:( (?<title>.+))$(?s).*"
      bumpExpressions: 
        major: '(?s)(?m)^[a-zA-Z0-9_]+(\\([a-z ]+\\))?(!: .*|.*^(BREAKING( |-)CHANGE: )).*'
        minor: '(?s)(?m)^feat(!{0})(\\([a-z ]+\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*'
        patch: '(?s)(?m)^fix(!{0})(\\([a-z ]+\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*'
configurationFile: ".nyx.yaml"
dryRun: false
git:
  remotes:
    origin:
      authenticationMethod: USER_PASSWORD
      user: jdoe
      password: somepassword
    replica:
      authenticationMethod: PUBLIC_KEY
      privateKey: ".ssh/id_ed25519"
      passphrase: somesecretpassphrase
initialVersion: "1.0.0"
preset: "extended"
releaseAssets: 
  asset1: 
    fileName: "asset.txt"
    description: "Text Asset"
    type: "text/plain"
    path: "asset.txt"
  asset2: 
    fileName: "asset.bin"
    description: "Binary Asset"
    type: "application/octet-stream"
    path: "asset.bin"
releaseLenient: true
releasePrefix: v
releaseTypes: 
  enabled: 
    - mainline
    - maturity
    - integration
    - hotfix
    - feature
    - release
    - maintenance
    - internal
  publicationServices: 
    - github
    - gitlab
  remoteRepositories:
    - origin
    - replica
  items: 
    mainline: 
      collapseVersions: false
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$"
      gitCommit: "false"
      gitCommitMessage: "Release version "
      gitPush: "true"
      gitPushForce: "true"
      gitTag: "true"
      gitTagForce: "true"
      gitTagMessage: "Tag version "
      gitTagNames:
        - ""
        - "stable"
        - "latest"
      matchBranches: ^(master|main)$
      matchEnvironmentVariables: 
        CI: "^true$"
      matchWorkspaceStatus: "CLEAN"
      publish: "true"
      releaseName: "Release "
      versionRangeFromBranchName: false
    maturity: 
      collapseVersions: true
      collapsedVersionQualifier: ""
      description: "Maturity release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)(\\.([0-9]\\d*))?)?$"
      gitCommit: "false"
      gitPush: "true"
      gitTag: "true"
      matchBranches: "^(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)$"
      matchWorkspaceStatus: "CLEAN"
      publish: "true"
      publishPreRelease: "true"
      versionRangeFromBranchName: false
    integration: 
      assets:
      collapseVersions: true
      collapsedVersionQualifier: ""
      description: "Integration release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(develop|development|integration|latest)(\\.([0-9]\\d*))?)$"
      gitCommit: "false"
      gitPush: "true"
      gitTag: "true"
      gitTagNames:
        - ""
      matchBranches: "^(develop|development|integration|latest)$"
      matchWorkspaceStatus: "CLEAN"
      publish: "true"
      publishPreRelease: "true"
      versionRangeFromBranchName: false
    feature: 
      collapseVersions: true
      collapsedVersionQualifier: ""
      description: "Feature release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(feat|feature)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$"
      gitCommit: "false"
      gitPush: "false"
      gitTag: "false"
      gitTagNames:
        - ""
      matchBranches: "^(feat|feature)((-|\\/)[0-9a-zA-Z-_]+)?$"
      publish: "false"
      publishPreRelease: "false"
      versionRangeFromBranchName: false
    hotfix:
      assets:
      - asset1
      collapseVersions: true
      collapsedVersionQualifier: ""
      description: "Hotfix release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(fix|hotfix)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$"
      gitCommit: "false"
      gitPush: "true"
      gitTag: "true"
      gitTagNames:
        - ""
      matchBranches: "^(fix|hotfix)((-|\\/)[0-9a-zA-Z-_]+)?$"
      matchWorkspaceStatus: "CLEAN"
      publish: "true"
      publishPreRelease: "true"
      versionRangeFromBranchName: false
    release: 
      collapseVersions: true
      collapsedVersionQualifier: ""
      description: "Release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(rel|release)((\\.([0-9]\\d*))?)?)$"
      gitCommit: "false"
      gitPush: "true"
      gitTag: "true"
      gitTagNames:
        - ""
      matchBranches: "^(rel|release)(-|\\/)()?([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$"
      matchWorkspaceStatus: "CLEAN"
      publish: "false"
      versionRangeFromBranchName: true
    maintenance: 
      collapseVersions: false
      description: "Maintenance release "
      filterTags: "^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$"
      gitCommit: "false"
      gitPush: "true"
      gitTag: "true"
      gitTagNames:
        - ""
      matchBranches: "^[a-zA-Z]*([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$"
      matchWorkspaceStatus: "CLEAN"
      publish: "true"
      versionRangeFromBranchName: true
    internal: 
      collapseVersions: true
      collapsedVersionQualifier: "internal"
      description: "Internal release "
      gitCommit: "false"
      gitPush: "false"
      gitTag: "false"
      identifiers: 
        -
          position: BUILD
          qualifier: branch
          value: ""
        -
          position: BUILD
          qualifier: commit
          value: ""
        -
          position: BUILD
          qualifier: timestamp
          value: ""
        -
          position: BUILD
          qualifier: user
          value: ""
      publish: "false"
      publishDraft: "true"
      versionRangeFromBranchName: false
resume: true
scheme: SEMVER
services: 
  github: 
    type: "GITHUB"
    options: 
      AUTHENTICATION_TOKEN: "GITHUB_TOKEN"
      REPOSITORY_NAME: "myrepo"
      REPOSITORY_OWNER: "acme"
  gitlab: 
    type: "GITLAB"
    options: 
      AUTHENTICATION_TOKEN: "abcde-a1b2c3d4e5f6g7h8i9j0"
      REPOSITORY_NAME: "myrepo"
      REPOSITORY_OWNER: "acme"
sharedConfigurationFile: "example-shared.config.json"
summary: true
summaryFile: ".nyx-summary.txt"
stateFile: ".nyx-state.yml"
substitutions: 
  enabled: 
    - npm
    - rust
  items: 
    npm: 
      files: "package.json"
      match: "\"version\"(\\s)*:(\\s)*\"(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?\""
      replace: "\"version\": \"\""
    rust: 
      files: "Cargo.toml"
      match: "version(\\s)*=(\\s)*(\"|')(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?(\"|')"
      replace: "version = \"\""
verbosity: INFO
version: "1.8.12"

Source code for this file is available here.

Groovy (Gradle)

nyx {
  changelog {
    append = 'head'
    path = 'CHANGELOG.md'
    sections = [
      'Added' : '^feat$',
      'Fixed' : '^fix$',
    ]
    substitutions = [
      '(?m)#([0-9]+)(?s)': '[#%s](https://example.com/issues/%s)'
    ]
  }
  commitMessageConventions {
    enabled = [ 'conventionalCommits' ]
    items {
      conventionalCommits {
        expression = '(?m)^(?<type>[a-zA-Z0-9_]+)(\\\\((?<scope>[a-z ]+)\\\\))?(!)?:( (?<title>.+))$(?s).*'
        bumpExpressions {
          major = '(?s)(?m)^[a-zA-Z0-9_]+(\\([a-z ]+\\))?(!: .*|.*^(BREAKING( |-)CHANGE: )).*'
          minor = '(?s)(?m)^feat(!{0})(\\\\([a-z ]+\\\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*'
          patch = '(?s)(?m)^fix(!{0})(\\\\([a-z ]+\\\\))?: (?!.*^(BREAKING( |-)CHANGE: )).*'
        }
      }
    }
  }
  configurationFile = '.nyx.json'
  dryRun = false
  git {
    remotes {
      origin {
        authenticationMethod = 'USER_PASSWORD'
        user = 'jdoe'
        password = 'somepassword'
      }
      replica {
        authenticationMethod = 'PUBLIC_KEY'
        privateKey = '.ssh/id_ed25519'
        passphrase = 'somesecretpassphrase'
      }
    }
  }
  initialVersion = '1.0.0'
  preset = 'extended'
  releaseAssets {
    asset1 {
      fileName = "asset.txt"
      description = "Text Asset"
      type = "text/plain"
      path = "asset.txt"
    }
    asset2 {
      fileName = "asset.bin"
      description = "Binary Asset"
      type = "application/octet-stream"
      path = "asset.bin"
    }
  }
  releaseLenient = true
  releasePrefix = 'v'
  releaseTypes {
    enabled = [ 'mainline', 'maturity', 'integration', 'hotfix', 'feature', 'release', 'maintenance', 'internal' ]
    publicationServices = [ 'github', 'gitlab' ]
    remoteRepositories = [ 'origin', 'replica' ]
    items {
      mainline {
        collapseVersions = false
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$'
        gitCommit = 'false'
        gitCommitMessage = 'Release version '
        gitPush = 'true'
        gitPushForce = 'true'
        gitTag = 'true'
        gitTagForce = 'true'
        gitTagMessage = 'Tag version '
        gitTagNames = [ '', 'stable', 'latest' ]
        matchBranches = '^(master|main)$'
        matchEnvironmentVariables {
          CI = '^true$'
        }
        matchWorkspaceStatus = 'CLEAN'
        publish = 'true'
        releaseName = 'Release '
        versionRangeFromBranchName = false
      }
      maturity {
        collapseVersions = true
        collapsedVersionQualifier = ''
        description = 'Maturity release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)(\\.([0-9]\\d*))?)?$'
        gitCommit = 'false'
        gitPush = 'true'
        gitTag = 'true'
        gitTagNames = [ '' ]
        matchBranches = '^(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)$'
        matchWorkspaceStatus = 'CLEAN'
        publish = 'true'
        publishPreRelease = 'true'
        versionRangeFromBranchName = false
      }
      integration {
        assets = ""
        collapseVersions = true
        collapsedVersionQualifier = ''
        description = 'Integration release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(develop|development|integration|latest)(\\.([0-9]\\d*))?)$'
        gitCommit = 'false'
        gitPush = 'true'
        gitTag = 'true'
        gitTagNames = [ '' ]
        matchBranches = '^(develop|development|integration|latest)$'
        matchWorkspaceStatus = 'CLEAN'
        publish = 'true'
        publishPreRelease = 'true'
        versionRangeFromBranchName = false
      }
      feature {
        collapseVersions = true
        collapsedVersionQualifier = ''
        description = 'Feature release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(feat|feature)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$'
        gitCommit = 'false'
        gitPush = 'false'
        gitTag = 'false'
        matchBranches = '^(feat|feature)((-|\\/)[0-9a-zA-Z-_]+)?$'
        publish = 'false'
        publishPreRelease = 'true'
        versionRangeFromBranchName = false
      }
      hotfix {
        assets = "asset1"
        collapseVersions = true
        collapsedVersionQualifier = ''
        description = 'Hotfix release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(fix|hotfix)(([0-9a-zA-Z]*)(\\.([0-9]\\d*))?)?)$'
        gitCommit = 'false'
        gitPush = 'true'
        gitTag = 'true'
        gitTagNames = [ '' ]
        matchBranches = '^(fix|hotfix)((-|\\/)[0-9a-zA-Z-_]+)?$'
        matchWorkspaceStatus = 'CLEAN'
        publish = 'true'
        publishPreRelease = 'true'
        versionRangeFromBranchName = false
      }
      release {
        collapseVersions = true
        collapsedVersionQualifier = ''
        description = 'Release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)(-(rel|release)((\\.([0-9]\\d*))?)?)$'
        gitCommit = 'false'
        gitPush = 'true'
        gitTag = 'true'
        gitTagNames = [ '' ]
        matchBranches = '^(rel|release)(-|\\/)()?([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$'
        matchWorkspaceStatus = 'CLEAN'
        publish = 'false'
        versionRangeFromBranchName = true
      }
      maintenance {
        collapseVersions = false
        description = 'Maintenance release '
        filterTags = '^()?([0-9]\\d*)\\.([0-9]\\d*)\\.([0-9]\\d*)$'
        gitCommit = 'false'
        gitPush = 'true'
        gitTag = 'true'
        gitTagNames = [ '' ]
        matchBranches = '^[a-zA-Z]*([0-9|x]\\d*)(\\.([0-9|x]\\d*)(\\.([0-9|x]\\d*))?)?$'
        matchWorkspaceStatus = 'CLEAN'
        publish = 'true'
        versionRangeFromBranchName = true
      }
      internal {
        collapseVersions = true
        collapsedVersionQualifier = 'internal'
        description = 'Internal release '
        gitCommit = 'false'
        gitPush = 'false'
        gitTag = 'false'
        identifiers {
          '0' {
            position = 'BUILD'
            qualifier = 'branch'
            value = ''
          }
          '1' {
            position = 'BUILD'
            qualifier = 'commit'
            value = ''
          }
          '2' {
            position = 'BUILD'
            qualifier = 'timestamp'
            value = ''
          }
          '3' {
            position = 'BUILD'
            qualifier = 'user'
            value = ''
          }
        }
        publish = 'false'
        publishDraft = 'true'
        versionRangeFromBranchName = false
      }
    }
  }
  resume = true
  scheme = 'SEMVER'
  services {
    github {
      type = 'GITHUB'
      options {
        AUTHENTICATION_TOKEN = 'GITHUB_TOKEN'
        REPOSITORY_NAME = 'myrepo'
        REPOSITORY_OWNER = 'acme'
      }
    }
    gitlab {
      type = 'GITLAB'
      options {
        AUTHENTICATION_TOKEN = 'abcde-a1b2c3d4e5f6g7h8i9j0'
        REPOSITORY_NAME = 'myrepo'
        REPOSITORY_OWNER = 'acme'
      }
    }
  }
  sharedConfigurationFile = 'example-shared.config.json'
  summary = true
  summaryFile = '.nyx-summary.txt'
  stateFile = '.nyx-state.yml'
  substitutions {
    enabled = [ 'npm', 'rust' ]
    items {
      npm {
        files = 'package.json'
        match = '"version"(\s)*:(\s)*"(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?"'
        replace = '"version": ""'
      }
      rust {
        files = 'Cargo.toml'
        match = 'version(\s)*=(\s)*("|\')(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?("|\')'
        replace = 'version = ""'
      }
    }
  }
  verbosity = 'INFO'
  version = '1.8.12'
}

Source code for this file is available here.