mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 11:06:32 +00:00
commit: expose the different kinds of errors
We should be checking whether the object we're looking up is a commit, and we should let the caller know whether the not-found return code comes from a bad object type or just a missing signature.
This commit is contained in:
@@ -266,12 +266,18 @@ GIT_EXTERN(int) git_commit_header_field(git_buf *out, const git_commit *commit,
|
||||
/**
|
||||
* Extract the signature from a commit
|
||||
*
|
||||
* If the id is not for a commit, the error class will be
|
||||
* `GITERR_INVALID`. If the commit does not have a signature, the
|
||||
* error class will be `GITERR_OBJECT`.
|
||||
*
|
||||
* @param signature the signature block
|
||||
* @param signed_data signed data; this is the commit contents minus the signature block
|
||||
* @param repo the repository in which the commit exists
|
||||
* @param commit_id the commit from which to extract the data
|
||||
* @param field the name of the header field containing the signature
|
||||
* block; pass `NULL` to extract the default 'gpgsig'
|
||||
* @return 0 on success, GIT_ENOTFOUND if the id is not for a commit
|
||||
* or the commit does not have a signature.
|
||||
*/
|
||||
GIT_EXTERN(int) git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_repository *repo, git_oid *commit_id, const char *field);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user