###############################################################################
# This file configures "Semantic Pull Requests", which is documented here:
# https://github.com/zeke/semantic-pull-requests
#
# This action/spec implements the "Conventional Commits" RFC which is
# available here:
# https://www.notion.so/coderhq/Conventional-commits-1d51287f58b64026bb29393f277734ed
###############################################################################

# We have no valid scopes right now.
# A scope should be added when commits aren't aligning with associated change anymore.
scopes:

# We only check that the PR title is semantic. The PR title is automatically
# applied to the "Squash & Merge" flow as the suggested commit message, so this
# should suffice unless someone drastically alters the message in that flow.
titleOnly: true

# Types are the 'tag' types in a commit or PR title. For example, in
#
# chore: fix thing
#
# 'chore' is the type.
types:
  # A build of any kind.
  - build

  # Any code task that operates outside of CI, docs, or the product. Examples
  # include configurations, linters etc.
  - chore

  # Any work performed on CI.
  - ci
  
  - example

  # Work that directly implements or supports the implementation of a feature.
  - feat

  # A fix for either a released or unrelesed bug.
  - fix

  # A fix for a released bug (regression fix) that is intended for patch-release
  # purposes.
  - hotfix

  # A refactor changes code structure without any behavioral change.
  - refactor

  # A git revert for any style of commit.
  - revert

  # Adding tests of any kind. Should be separate from feature or fix
  # implementations. For example, if a commit adds a fix + test, it's a fix
  # commit. If a commit is simply bumping coverage, it's a test commit.
  - test
