Developer Workflow & Commit Guidelines
1. Credentials Configuration
CREDENTIALS_STRUCTURE:
USERNAME = System.getenv('GITHUB_ACTOR')
?: System.getenv('AGENT_GITHUB_NAME')
?: System.getenv('USER_GITHUB_NAME')
PASSWORD = System.getenv('GITHUB_TOKEN')
?: System.getenv('AGENT_GITHUB_TOKEN')
?: System.getenv('USER_GITHUB_TOKEN')
2. Branch Naming Convention (STRICT)
CRITICAL: Branches must follow the type/noun structure. Do not use verbs or Jira IDs.
Format: {type}/{primary-noun} or {type}/{primary-noun}-{secondary-noun}
Allowed Types: feat/, fix/, docs/, style/, refactor/, perf/, test/, build/, ci/, chore/ and revert/.
3. Commit Message Convention (STRICT)
Commits MUST follow the Conventional Commits specification. The structure communicates intent to the consumers of the library:
<type>[optional scope]: <description> [optional body] [optional footer(s)]
- fix: Patches a bug in your codebase (PATCH in Semantic Versioning).
- feat: Introduces a new feature to the codebase (MINOR in Semantic Versioning).
- BREAKING CHANGE: A commit that has a footer
BREAKING CHANGE:, or appends a!after the type/scope, introduces a breaking API change (MAJOR in Semantic Versioning). - Other Types: Types other than fix and feat are allowed (e.g.,
build:,chore:,ci:,docs:,style:,refactor:,perf:,test:).
Examples:
feat: allow provided config object to extend other configs BREAKING CHANGE: `extends` key in config file is now used for extending other config files
feat(api)!: send an email to the customer when a product is shipped
fix: prevent racing of requests Introduce a request id and a reference to latest request. Dismiss incoming responses other than from latest request. Remove timeouts which were used to mitigate the racing issue but are obsolete now. Reviewed-by: Z Refs: #123