From 341b52f287e3b8281c8f828fdbfec88453c3e788 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 25 Aug 2025 14:55:23 +0545 Subject: [PATCH] refactor(commitgen): improve emoji handling and sanitization in commit message generation --- CHANGELOG.md | 7 +++---- devtools/commitgen/generator.py | 24 +++++++++++------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fba798..83258a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,16 +11,15 @@ 🔄 Changed - Replaced Ruff linter with Black - -🐛 Fixed - Improved changelog generation and sanitization of AI output - Improved changelog generation to handle existing files and duplicate headers + +🗑️ Removed - Removed duplicate changelog entries 📝 Documentation -- Updated changelog for v0.1.0 release -- Updated changelog for v0.1.1 release - Recommended installation using pipx and uv +- Updated changelog for v0.1.1 release ## v0.1.0 diff --git a/devtools/commitgen/generator.py b/devtools/commitgen/generator.py index d1dcffd..19bb654 100644 --- a/devtools/commitgen/generator.py +++ b/devtools/commitgen/generator.py @@ -96,7 +96,7 @@ Output ONLY the commit message in the correct format{" with emoji" if self.use_e else: message = lines[0] if lines else "🔧 chore: update code" - # Apply or remove emoji based on configuration + # Apply or remove emoji based on configuration (strict removal when disabled) if self.use_emoji: if not any( emoji in message for emoji in ["✨", "🐛", "📚", "💅", "♻️", "✅", "🔧"] @@ -116,13 +116,12 @@ Output ONLY the commit message in the correct format{" with emoji" if self.use_e elif message.startswith("chore"): message = "🔧 " + message else: - message = "🔧 " + message # fallback + message = "🔧 " + message else: - # Strip known emojis if present - for emoji in ["✨ ", "🐛 ", "📚 ", "💅 ", "♻️ ", "✅ ", "🔧 "]: - if message.startswith(emoji): - message = message[len(emoji) :] - break + # Remove any known emojis anywhere in the message + for emoji in ["✨", "🐛", "📚", "💅", "♻️", "✅", "🔧"]: + message = message.replace(emoji, "") + message = " ".join(message.split()) return message @@ -220,7 +219,7 @@ Output ONLY the commit message in the correct format{" with emoji" if self.use_e else: message = lines[0] if lines else "🔧 chore: update code" - # Ensure proper emoji prefix + # Ensure proper emoji prefix or strip strictly according to config if self.use_emoji: if not any( emoji in message for emoji in ["✨", "🐛", "📚", "💅", "♻️", "✅", "🔧"] @@ -240,12 +239,11 @@ Output ONLY the commit message in the correct format{" with emoji" if self.use_e elif message.startswith("chore"): message = "🔧 " + message else: - message = "🔧 " + message # fallback + message = "🔧 " + message else: - for emoji in ["✨ ", "🐛 ", "📚 ", "💅 ", "♻️ ", "✅ ", "🔧 "]: - if message.startswith(emoji): - message = message[len(emoji) :] - break + for emoji in ["✨", "🐛", "📚", "💅", "♻️", "✅", "🔧"]: + message = message.replace(emoji, "") + message = " ".join(message.split()) return message