refactor: filter out automatic release documentation commits in changelog categorization

This commit is contained in:
2025-09-02 18:49:25 +02:00
parent 98ec5b9846
commit bcb7c039e2

View File

@@ -42,6 +42,12 @@ def categorize_commit(commit_msg):
"""Categorize commit messages based on conventional commits""" """Categorize commit messages based on conventional commits"""
lower_msg = commit_msg.lower() lower_msg = commit_msg.lower()
# Filter out automatic release documentation commits
if ('docs:' in lower_msg and
('update changelog and header for version' in lower_msg or
'update platformio.ini for' in lower_msg)):
return None # Skip these commits
# Check for breaking changes first # Check for breaking changes first
if ('!' in commit_msg and any(x in lower_msg for x in ['feat!', 'fix!', 'chore!', 'refactor!'])) or \ if ('!' in commit_msg and any(x in lower_msg for x in ['feat!', 'fix!', 'chore!', 'refactor!'])) or \
'breaking change' in lower_msg or 'breaking:' in lower_msg: 'breaking change' in lower_msg or 'breaking:' in lower_msg:
@@ -77,11 +83,12 @@ def get_changes_from_git():
for commit in commits: for commit in commits:
if commit: if commit:
category = categorize_commit(commit) category = categorize_commit(commit)
# Clean up commit message if category is not None: # Skip commits that return None (filtered out)
clean_msg = re.sub(r'^(feat|fix|chore|docs|style|refactor|perf|test)(\(.*\))?!?:', '', commit).strip() # Clean up commit message
# Remove BREAKING CHANGE prefix if present clean_msg = re.sub(r'^(feat|fix|chore|docs|style|refactor|perf|test)(\(.*\))?!?:', '', commit).strip()
clean_msg = re.sub(r'^breaking change:\s*', '', clean_msg, flags=re.IGNORECASE).strip() # Remove BREAKING CHANGE prefix if present
changes[category].append(clean_msg) clean_msg = re.sub(r'^breaking change:\s*', '', clean_msg, flags=re.IGNORECASE).strip()
changes[category].append(clean_msg)
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
print("Error: Failed to get git commits") print("Error: Failed to get git commits")