Commit 698b44639e499b23d882f8a26f3ca5fd4d94f22e

Etienne Samson 2018-06-23T13:06:10

annotated_commit: make the refname accessible As git_annotated_commit seems to behave like cgit's refish, it's quite helpful to abstract away "targets" via git_annotated_commit_from_id/from_ref. As the former is accessible via git_annotated_commit_id, make the latter also available to users.

diff --git a/include/git2/annotated_commit.h b/include/git2/annotated_commit.h
index 7fb896a..fa795bf 100644
--- a/include/git2/annotated_commit.h
+++ b/include/git2/annotated_commit.h
@@ -104,6 +104,15 @@ GIT_EXTERN(const git_oid *) git_annotated_commit_id(
 	const git_annotated_commit *commit);
 
 /**
+ * Get the refname that the given `git_annotated_commit` refers to.
+ *
+ * @param commit the given annotated commit
+ * @return ref name.
+ */
+GIT_EXTERN(const char *) git_annotated_commit_ref(
+	const git_annotated_commit *commit);
+
+/**
  * Frees a `git_annotated_commit`.
  *
  * @param commit annotated commit to free
diff --git a/src/annotated_commit.c b/src/annotated_commit.c
index 72ba80a..1aa67dd 100644
--- a/src/annotated_commit.c
+++ b/src/annotated_commit.c
@@ -196,6 +196,13 @@ const git_oid *git_annotated_commit_id(
 	return git_commit_id(annotated_commit->commit);
 }
 
+const char *git_annotated_commit_ref(
+	const git_annotated_commit *annotated_commit)
+{
+	assert(annotated_commit);
+	return annotated_commit->ref_name;
+}
+
 void git_annotated_commit_free(git_annotated_commit *annotated_commit)
 {
 	if (annotated_commit == NULL)