Skip to content

Commit a6cfed9

Browse files
authored
fix(ci): allow ci PR title scope
Allows ci as a semantic PR title scope and covers the workflow config with a regression test.
1 parent 2de8183 commit a6cfed9

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

.github/workflows/pr-title.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
mcp
3939
sync
4040
ui
41+
ci
4142
deps
4243
installer
4344
plugins

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Before opening or updating a PR, run the checks that mirror the common required
8383
- Run `just typecheck` in addition to targeted `ruff` and `pytest` commands when tests were added or changed.
8484
- Sign commits with `git commit -s` so DCO passes. If a PR branch already has unsigned commits, rewrite the branch with signed-off commits before asking for review.
8585
- Use a semantic PR title accepted by `.github/workflows/pr-title.yml`: `type(scope): summary`.
86-
- Use one of the allowed scopes: `core`, `cli`, `api`, `mcp`, `sync`, `ui`, `deps`, `installer`, `plugins`, `skills`, `integrations`.
86+
- Use one of the allowed scopes: `core`, `cli`, `api`, `mcp`, `sync`, `ui`, `ci`, `deps`, `installer`, `plugins`, `skills`, `integrations`.
8787

8888
### Test Structure
8989

@@ -506,7 +506,7 @@ With GitHub integration, the development workflow includes:
506506
5. **Code Commits**: ALWAYS sign off commits with `git commit -s`
507507
6. **Pull Request Titles**: PR titles must follow the semantic format enforced by `.github/workflows/pr-title.yml`: `type(scope): summary`
508508
- Allowed types: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`
509-
- Allowed scopes: `core`, `cli`, `api`, `mcp`, `sync`, `ui`, `deps`, `installer`, `plugins`, `skills`, `integrations`
509+
- Allowed scopes: `core`, `cli`, `api`, `mcp`, `sync`, `ui`, `ci`, `deps`, `installer`, `plugins`, `skills`, `integrations`
510510
- Example: `fix(cli): propagate cloud workspace routing`
511511

512512
This level of integration represents a new paradigm in AI-human collaboration, where the AI assistant becomes a full-fledged team member rather than just a tool for generating code snippets.

tests/test_pr_title_workflow.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from pathlib import Path
2+
3+
import yaml
4+
5+
6+
def _semantic_pr_action_inputs() -> dict:
7+
workflow = yaml.safe_load(Path(".github/workflows/pr-title.yml").read_text(encoding="utf-8"))
8+
steps = workflow["jobs"]["main"]["steps"]
9+
action_step = next(
10+
step for step in steps if step.get("uses") == "amannn/action-semantic-pull-request@v6"
11+
)
12+
return action_step["with"]
13+
14+
15+
def test_pr_title_workflow_allows_ci_scope() -> None:
16+
scopes = _semantic_pr_action_inputs()["scopes"].split()
17+
18+
assert "ci" in scopes

0 commit comments

Comments
 (0)