summaryrefslogtreecommitdiff
path: root/lib/git_helpers.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/git_helpers.ml')
-rw-r--r--lib/git_helpers.ml25
1 files changed, 8 insertions, 17 deletions
diff --git a/lib/git_helpers.ml b/lib/git_helpers.ml
index d973a88..0626d02 100644
--- a/lib/git_helpers.ml
+++ b/lib/git_helpers.ml
@@ -1,20 +1,11 @@
open Lwt.Infix
-open Git_unix
let get_head_commit_hash repo_path =
- let root = Fpath.v repo_path in
-
- (* 1. Open the Git repository *)
- let%lwt repo =
- Store.v root >>= function
- | Ok repo -> Lwt.return repo
- | Error _ -> Lwt.fail_with "Could not open the Git repository."
- in
-
- (* 2. Resolve HEAD to get the latest commit hash *)
- let%lwt commit_hash =
- Git_unix.Store.Ref.resolve repo Git.Reference.master >>= function
- | Ok hash -> Lwt.return hash
- | Error _ -> Lwt.fail_with "Failed to resolve HEAD"
- in
- Lwt.return @@ (commit_hash |> Digestif.SHA1.to_hex)
+ let full_path = Filename.concat Config.git_directory repo_path in
+ let%lwt store_result = Git_unix.Store.v @@ Fpath.v full_path in
+ match store_result with
+ | Error _ -> Lwt.return_error "Could not open the Git repository."
+ | Ok store -> (
+ Git_unix.Store.Ref.resolve store Git.Reference.head >|= function
+ | Error _ -> Error ("Failed to resolve HEAD for repo " ^ repo_path)
+ | Ok hash -> Ok (Git_unix.Store.Hash.to_hex hash))
Copyright 2019--2025 Marius PETER