add 'git credential' plumbing command
The credential API is in C, and not available to scripting languages. Expose the functionalities of the API by wrapping them into a new plumbing command "git credentials". In other words, replace the internal "test-credential" by an official Git command. Most documentation writen by: Jeff King <peff@peff.net> Signed-off-by: Pavel Volek <Pavel.Volek@ensimag.imag.fr> Signed-off-by: Kim Thuat Nguyen <Kim-Thuat.Nguyen@ensimag.imag.fr> Signed-off-by: Javier Roucher Iglesias <Javier.Roucher-Iglesias@ensimag.imag.fr> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
fd378070c8
commit
e30b2feb1b
34
builtin/credential.c
Normal file
34
builtin/credential.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include "git-compat-util.h"
|
||||
#include "credential.h"
|
||||
#include "builtin.h"
|
||||
|
||||
static const char usage_msg[] =
|
||||
"git credential [fill|approve|reject]";
|
||||
|
||||
int cmd_credential(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
const char *op;
|
||||
struct credential c = CREDENTIAL_INIT;
|
||||
|
||||
op = argv[1];
|
||||
if (!op)
|
||||
usage(usage_msg);
|
||||
|
||||
if (credential_read(&c, stdin) < 0)
|
||||
die("unable to read credential from stdin");
|
||||
|
||||
if (!strcmp(op, "fill")) {
|
||||
credential_fill(&c);
|
||||
if (c.username)
|
||||
printf("username=%s\n", c.username);
|
||||
if (c.password)
|
||||
printf("password=%s\n", c.password);
|
||||
} else if (!strcmp(op, "approve")) {
|
||||
credential_approve(&c);
|
||||
} else if (!strcmp(op, "reject")) {
|
||||
credential_reject(&c);
|
||||
} else {
|
||||
usage(usage_msg);
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user