mathieudutour / mathieudutour/github-tag-action

Commits with [no-release] (or similar) keyword should be ignored in version calculation

Open
#238 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.