mathieudutour / mathieudutour/github-tag-action
Commits with [no-release] (or similar) keyword should be ignored in version calculation
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 733
- Forks
- 227
- PR merge metrics
- No merged PRs in 30d
Description
### 🧠 Description
Currently, the version calculation process analyzes **all commits**, including those containing special keywords like `[skip ci]`.
However, there should be a way to **ignore commits** that contain a specific keyword (e.g., `[no-release]`) so they **don’t contribute to the version bump** logic.
### 🔍 Example Scenario
```txt
chore: hello world
=> Analysis => release_type: patch
feat: Add intro message component [no-release]
=> Analysis => release_type: minor, but should be ignored due to [no-release]
fix: add french language support
=> Analysis => release_type: patch
```
### ⚙️ Current Behavior
- The action analyzes **all commits** since the last release.
- Commits with keywords like `[no-release]` or `[skip-release]` are **not filtered out**.
- If any such commit includes a conventional commit type like `feat:` or `fix:`, it **still contributes** to determining the final `release_type`.
Example outcome:
- A commit with `feat:` and `[no-release]` still causes a **minor bump**, even though it should be ignored.
### 🎯 Expected Behavior
- Commits containing configurable ignore keywords (e.g., `[no-release]`, `[skip-release]`) should be **skipped entirely** during analysis.
- These commits should:
- Not contribute to determining the `release_type`.
- Not appear in the changelog.
- Not influence semantic versioning logic in any way.
### 💡 Proposed Solution
- Introduce a configurable list of **ignore keywords** (default: `[no-release]`, `[skip-release]`).
- Before version analysis begins, **filter out commits** whose messages contain one of these keywords.
- Continue version bump calculation using only the remaining commits.
### 🧱 Additional Context
This enhancement ensures better control over automated versioning workflows — especially useful when non-impactful commits (like internal refactors, experiments, or temporary feature branches) should not trigger a release.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests; start by locating the version-calculation entry point and the commit-analysis and changelog paths. Trace how commit messages become release types, then verify that configurable ignore keywords exclude matching commits from version bumps and changelogs while other commits remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, typescript
- Domain
- ci-cd, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100