diff --git a/CHANGELOG.md b/CHANGELOG.md
index d47dae6f16fa8d44900ea247d703711a4a0ad07a..a840c871ec477d32c7760c84a97a2c8966832c66 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,44 @@
 
 All notable changes to this project will be documented in this file.
 
+## [0.4.0] - 2024-11-20
+
+### Bug Fixes
+
+- server: Ignore events that come from the bot itself
+- AutoStale: Replace freenode with OFTC
+
+### Features
+
+- server: Add services that use MergeCommentEvent
+- AutoMaintainer: Add label when assigning a maintainer
+- AutLabeler: Add or remove "NeedsFeedbackLabel" when appropriate
+- MaintainerFeedback: Add maintainer feedback service
+- AutoStale: Allow to globally configure label and message
+- AutoStale: Make contact a global option
+- AutoMaintainer: Support maintainer as variable
+
+### Miscellaneous Tasks
+
+- ci: Remove deactivated linters
+- Services: Migrate away of deprecated gitlab.String, Time, and Bool
+- Services: Migrate away from deprecated GetMergeRequestChanges
+- ci: Re-enable deprecations
+- ci: Remove linters-settings to set go version
+- AutoLabeler: Remove rand.Seed from tests
+- ci: Enable all govet checks, and improve some struct alignments
+- AutoStale: Some small simplifications and var name improvements
+- AutoMaintainer: Fix some tests panicking on error
+
+### Refactor
+
+- Services: Prepare for other types of WebHook services
+- server: Slightly simplify logger creation
+- Services: Better document and organize structs
+- AutoLabeler: Split logic that adds "aports" labels into function
+- AutoLabeler: Use slices.Contains instead of custom functions
+- Services: Split registration of WebHookServices into functions
+
 ## [0.3.4] - 2024-02-17
 
 ### Bug Fixes
diff --git a/cliff.toml b/cliff.toml
index 4fdc0a5512b93ae2026fa11dd78778a84be002f9..50cdad7fe3e3a2b40872e271ce2da5acdcbe9127 100644
--- a/cliff.toml
+++ b/cliff.toml
@@ -18,15 +18,14 @@ body = """
 """
 # remove the leading and trailing whitespace from the template
 trim = true
-footer = """
-<!-- generated by git-cliff -->
-"""
+footer = ""
 [git]
 conventional_commits = true
 filter_unconventional = true
 # regex for parsing and grouping commits
 commit_parsers = [
   { message = "^merge:", skip = true },
+  { message = "^chore\\(release\\)", skip = true },
   { message = "feat\\(services\\): add rust team to be pinged", skip = true },
   { message = "^feat", group = "Features" },
   { message = "^fix", group = "Bug Fixes" },