mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
Merge pull request #6706 from u-quark/signature-use-env-vars
Use environment variables when creating signatures
This commit is contained in:
@@ -39,7 +39,7 @@ int lg2_commit(git_repository *repo, int argc, char **argv)
|
||||
git_index *index;
|
||||
git_object *parent = NULL;
|
||||
git_reference *ref = NULL;
|
||||
git_signature *signature;
|
||||
git_signature *author_signature, *committer_signature;
|
||||
|
||||
/* Validate args */
|
||||
if (argc < 3 || strcmp(opt, "-m") != 0) {
|
||||
@@ -63,21 +63,23 @@ int lg2_commit(git_repository *repo, int argc, char **argv)
|
||||
|
||||
check_lg2(git_tree_lookup(&tree, repo, &tree_oid), "Error looking up tree", NULL);
|
||||
|
||||
check_lg2(git_signature_default(&signature, repo), "Error creating signature", NULL);
|
||||
check_lg2(git_signature_default_from_env(&author_signature, &committer_signature, repo),
|
||||
"Error creating signature", NULL);
|
||||
|
||||
check_lg2(git_commit_create_v(
|
||||
&commit_oid,
|
||||
repo,
|
||||
"HEAD",
|
||||
signature,
|
||||
signature,
|
||||
author_signature,
|
||||
committer_signature,
|
||||
NULL,
|
||||
comment,
|
||||
tree,
|
||||
parent ? 1 : 0, parent), "Error creating commit", NULL);
|
||||
|
||||
git_index_free(index);
|
||||
git_signature_free(signature);
|
||||
git_signature_free(author_signature);
|
||||
git_signature_free(committer_signature);
|
||||
git_tree_free(tree);
|
||||
git_object_free(parent);
|
||||
git_reference_free(ref);
|
||||
|
||||
@@ -123,14 +123,14 @@ int lg2_init(git_repository *repo, int argc, char *argv[])
|
||||
*/
|
||||
static void create_initial_commit(git_repository *repo)
|
||||
{
|
||||
git_signature *sig;
|
||||
git_signature *author_sig = NULL, *committer_sig = NULL;
|
||||
git_index *index;
|
||||
git_oid tree_id, commit_id;
|
||||
git_tree *tree;
|
||||
|
||||
/** First use the config to initialize a commit signature for the user. */
|
||||
|
||||
if (git_signature_default(&sig, repo) < 0)
|
||||
if ((git_signature_default_from_env(&author_sig, &committer_sig, repo) < 0))
|
||||
fatal("Unable to create a commit signature.",
|
||||
"Perhaps 'user.name' and 'user.email' are not set");
|
||||
|
||||
@@ -162,14 +162,15 @@ static void create_initial_commit(git_repository *repo)
|
||||
*/
|
||||
|
||||
if (git_commit_create_v(
|
||||
&commit_id, repo, "HEAD", sig, sig,
|
||||
&commit_id, repo, "HEAD", author_sig, committer_sig,
|
||||
NULL, "Initial commit", tree, 0) < 0)
|
||||
fatal("Could not create the initial commit", NULL);
|
||||
|
||||
/** Clean up so we don't leak memory. */
|
||||
|
||||
git_tree_free(tree);
|
||||
git_signature_free(sig);
|
||||
git_signature_free(author_sig);
|
||||
git_signature_free(committer_sig);
|
||||
}
|
||||
|
||||
static void usage(const char *error, const char *arg)
|
||||
|
||||
@@ -108,7 +108,7 @@ static int cmd_push(git_repository *repo, struct opts *opts)
|
||||
if (opts->argc)
|
||||
usage("push does not accept any parameters");
|
||||
|
||||
check_lg2(git_signature_default(&signature, repo),
|
||||
check_lg2(git_signature_default_from_env(&signature, NULL, repo),
|
||||
"Unable to get signature", NULL);
|
||||
check_lg2(git_stash_save(&stashid, repo, signature, NULL, GIT_STASH_DEFAULT),
|
||||
"Unable to save stash", NULL);
|
||||
|
||||
@@ -226,7 +226,7 @@ static void action_create_tag(tag_state *state)
|
||||
check_lg2(git_revparse_single(&target, repo, opts->target),
|
||||
"Unable to resolve spec", opts->target);
|
||||
|
||||
check_lg2(git_signature_default(&tagger, repo),
|
||||
check_lg2(git_signature_default_from_env(&tagger, NULL, repo),
|
||||
"Unable to create signature", NULL);
|
||||
|
||||
check_lg2(git_tag_create(&oid, repo, opts->tag_name,
|
||||
|
||||
Reference in New Issue
Block a user