{
  "branches": [
    "main",
    {
      "name": "alpha",
      "prerelease": true
    },
    {
      "name": "beta",
      "prerelease": true
    },
    {
      "name": "next",
      "prerelease": true
    }
  ],
  "plugins": [
    [
      "@semantic-release/commit-analyzer",
      {
        "preset": "conventionalcommits",
        "releaseRules": [
          {
            "type": "docs",
            "scope": "README",
            "release": "patch"
          },
          {
            "type": "refactor",
            "scope": "core-*",
            "release": "minor"
          },
          {
            "type": "refactor",
            "release": "patch"
          }
        ],
        "parserOpts": {
          "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
        }
      }
    ],
    [
      "@semantic-release/release-notes-generator",
      {
        "preset": "conventionalcommits",
        "parserOpts": {
          "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
        },
        "presetConfig": {
          "types": [
            {
              "type": "feat",
              "section": "Features"
            },
            {
              "type": "fix",
              "section": "Bug Fixes"
            },
            {
              "type": "chore",
              "section": "Internal",
              "hidden": false
            },
            {
              "type": "refactor",
              "section": "Internal",
              "hidden": false
            },
            {
              "type": "perf",
              "section": "Internal",
              "hidden": false
            }
          ]
        }
      }
    ],
    "@semantic-release/changelog",
    [
      "@semantic-release/exec",
      {
        "prepareCmd": "./scripts/bundle.sh ${nextRelease.version} && ./scripts/package.sh ${nextRelease.version} && pnpm exec prettier --write CHANGELOG.md"
      }
    ],
    "@semantic-release/npm",
    [
      "@semantic-release/git",
      {
        "assets": [
          "app/Config/Constants.php",
          "composer.json",
          "package.json",
          "package-lock.json",
          "CHANGELOG.md"
        ]
      }
    ],
    [
      "@semantic-release/gitlab",
      {
        "gitlabUrl": "https://code.castopod.org/",
        "assets": [
          {
            "path": "castopod-*.zip",
            "label": "Castopod Package (zip)"
          },
          {
            "path": "castopod-*.tar.gz",
            "label": "Castopod Package (tar.gz)"
          }
        ]
      }
    ]
  ]
}