diff --git a/srcpkgs/git-cliff/patches/downgrade-git2.patch b/srcpkgs/git-cliff/patches/downgrade-git2.patch
new file mode 100644
index 00000000000..3751aa7fa9f
--- /dev/null
+++ b/srcpkgs/git-cliff/patches/downgrade-git2.patch
@@ -0,0 +1,13 @@
+diff --git a/git-cliff-core/Cargo.toml b/git-cliff-core/Cargo.toml
+index 79cab62..fb21383 100644
+--- a/git-cliff-core/Cargo.toml
++++ b/git-cliff-core/Cargo.toml
+@@ -76,7 +76,7 @@ url = "2.5.2"
+ dyn-clone = "1.0.17"
+ 
+ [dependencies.git2]
+-version = "0.19.0"
++version = "0.18"
+ default-features = false
+ optional = true
+ 
diff --git a/srcpkgs/git-cliff/template b/srcpkgs/git-cliff/template
index 6514fe3efe1..41ad50749e5 100644
--- a/srcpkgs/git-cliff/template
+++ b/srcpkgs/git-cliff/template
@@ -1,17 +1,13 @@
 # Template file for 'git-cliff'
 pkgname=git-cliff
-version=2.3.0
+version=2.4.0
 revision=1
 archs="x86_64* i686* aarch64* arm*" # ring
 build_style=cargo
 build_helper=qemu
 make_install_args="--path git-cliff"
 # These tests fail without a git repo
-make_check_args="--
- --skip repo::test::git_tags
- --skip repo::test::git_upstream_remote
- --skip repo::test::get_latest_commit
- --skip repo::test::get_latest_tag"
+make_check_args="-- --skip repo::"
 hostmakedepends="pkg-config"
 makedepends="libgit2-devel libzstd-devel"
 short_desc="Changelog generator based on conventional commits"
@@ -20,7 +16,11 @@ license="Apache-2.0, MIT"
 homepage="https://github.com/orhun/git-cliff"
 changelog="https://raw.githubusercontent.com/orhun/git-cliff/main/CHANGELOG.md"
 distfiles="https://github.com/orhun/git-cliff/archive/refs/tags/v${version}.tar.gz"
-checksum=a234fa1b78f7d9807ef1e41e6c36e56f178e65aa0f6e1fb7100cf144def2f180
+checksum=d5791600e440d0842e42f3b0dbc8d503f4902920675054a23f046fbb1c252636
+
+post_patch() {
+	cargo update --package git2@0.19.0 --precise 0.18.3
+}
 
 post_install() {
 	vdoc README.md