Merge pull request #6706 from u-quark/signature-use-env-vars

Use environment variables when creating signatures
This commit is contained in:
Edward Thomson
2024-07-10 08:31:15 +01:00
committed by GitHub
11 changed files with 295 additions and 27 deletions

View File

@@ -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);

View File

@@ -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)

View File

@@ -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);

View File

@@ -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,