Skip to content
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
12 changes: 10 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
## [1.1.0] - 2026-03-08

- Updated beta banner to v1 stable
### Added

- Language scopes: ruby, go, javascript, rust
- Workflow scopes: security, changelog, release
- Explicit test cases for all new scopes

### Fixed

- Scope validation now matches all scopes documented in DEVELOPMENT.md

## [1.0.0] - 2026-02-20

Expand Down
4 changes: 4 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,14 @@ type(scope): description
| `ruby` | Ruby tooling, configs, or standards |
| `go` | Go tooling, configs, or standards |
| `javascript` | JavaScript/TypeScript tooling, configs, or standards |
| `rust` | Rust tooling, configs, or standards |
| `container` | Dev-toolchain container image |
| `ci` | CI/CD pipeline configuration |
| `makefile` | Makefile targets and patterns |
| `standards` | DevRail standards documentation |
| `security` | Security tooling and configuration |
| `changelog` | Changelog and release notes |
| `release` | Release process and tagging |

<!-- /devrail:commits -->

Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A [pre-commit](https://pre-commit.com/) hook that enforces [Conventional Commits
```yaml
repos:
- repo: https://github.com/devrail-dev/pre-commit-conventional-commits
rev: v1.0.0
rev: v1.1.0
hooks:
- id: conventional-commits
```
Expand Down Expand Up @@ -59,10 +59,17 @@ type(scope): description
| `terraform` | Terraform tooling, configs, or standards |
| `bash` | Bash tooling, configs, or standards |
| `ansible` | Ansible tooling, configs, or standards |
| `ruby` | Ruby tooling, configs, or standards |
| `go` | Go tooling, configs, or standards |
| `javascript` | JavaScript/TypeScript tooling, configs, or standards |
| `rust` | Rust tooling, configs, or standards |
| `container` | Dev-toolchain container image |
| `ci` | CI/CD pipeline configuration |
| `makefile` | Makefile targets and patterns |
| `standards` | DevRail standards documentation |
| `security` | Security tooling and configuration |
| `changelog` | Changelog and release notes |
| `release` | Release process and tagging |

### Examples

Expand Down
7 changes: 7 additions & 0 deletions conventional_commits/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,17 @@
"terraform",
"bash",
"ansible",
"ruby",
"go",
"javascript",
"rust",
"container",
"ci",
"makefile",
"standards",
"security",
"changelog",
"release",
})

# Regex pattern for the conventional commit subject line.
Expand Down
49 changes: 49 additions & 0 deletions tests/test_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,48 @@ def test_test_terraform(self):
)
assert is_valid

def test_feat_ruby(self):
is_valid, _ = validate_commit_message(
"feat(ruby): add brakeman security scanner"
)
assert is_valid

def test_feat_go(self):
is_valid, _ = validate_commit_message(
"feat(go): add golangci-lint configuration"
)
assert is_valid

def test_feat_javascript(self):
is_valid, _ = validate_commit_message(
"feat(javascript): add eslint flat config"
)
assert is_valid

def test_feat_rust(self):
is_valid, _ = validate_commit_message(
"feat(rust): add clippy and rustfmt checks"
)
assert is_valid

def test_chore_security(self):
is_valid, _ = validate_commit_message(
"chore(security): update gitleaks configuration"
)
assert is_valid

def test_docs_changelog(self):
is_valid, _ = validate_commit_message(
"docs(changelog): add v1.1.0 release notes"
)
assert is_valid

def test_chore_release(self):
is_valid, _ = validate_commit_message(
"chore(release): tag v1.1.0"
)
assert is_valid

def test_description_with_numbers(self):
is_valid, _ = validate_commit_message(
"chore(container): bump python from 3.11 to 3.12"
Expand Down Expand Up @@ -234,9 +276,16 @@ def test_error_shows_valid_scopes(self):
assert "terraform" in error
assert "bash" in error
assert "ansible" in error
assert "ruby" in error
assert "go" in error
assert "javascript" in error
assert "rust" in error
assert "container" in error
assert "makefile" in error
assert "standards" in error
assert "security" in error
assert "changelog" in error
assert "release" in error

def test_error_shows_examples(self):
_, error = validate_commit_message("bad message")
Expand Down
14 changes: 14 additions & 0 deletions tests/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,17 @@ def test_contains_all_required_scopes(self):
"terraform",
"bash",
"ansible",
"ruby",
"go",
"javascript",
"rust",
"container",
"ci",
"makefile",
"standards",
"security",
"changelog",
"release",
}
assert VALID_SCOPES == expected

Expand All @@ -48,10 +55,17 @@ def test_no_extra_scopes(self):
"terraform",
"bash",
"ansible",
"ruby",
"go",
"javascript",
"rust",
"container",
"ci",
"makefile",
"standards",
"security",
"changelog",
"release",
}
assert VALID_SCOPES - expected == set()

Expand Down