Merge pull request #2157 from rista404/print-auth-token-1514
Add ability to print auth token
This commit is contained in:
commit
f8fd61cc6c
2 changed files with 56 additions and 19 deletions
|
|
@ -19,7 +19,8 @@ type StatusOptions struct {
|
|||
IO *iostreams.IOStreams
|
||||
Config func() (config.Config, error)
|
||||
|
||||
Hostname string
|
||||
Hostname string
|
||||
ShowToken bool
|
||||
}
|
||||
|
||||
func NewCmdStatus(f *cmdutil.Factory, runF func(*StatusOptions) error) *cobra.Command {
|
||||
|
|
@ -48,6 +49,7 @@ func NewCmdStatus(f *cmdutil.Factory, runF func(*StatusOptions) error) *cobra.Co
|
|||
}
|
||||
|
||||
cmd.Flags().StringVarP(&opts.Hostname, "hostname", "h", "", "Check a specific hostname's auth status")
|
||||
cmd.Flags().BoolVarP(&opts.ShowToken, "show-token", "t", false, "Display the auth token")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
|
@ -84,7 +86,7 @@ func statusRun(opts *StatusOptions) error {
|
|||
continue
|
||||
}
|
||||
|
||||
_, tokenSource, _ := cfg.GetWithSource(hostname, "oauth_token")
|
||||
token, tokenSource, _ := cfg.GetWithSource(hostname, "oauth_token")
|
||||
tokenIsWriteable := cfg.CheckWriteable(hostname, "oauth_token") == nil
|
||||
|
||||
statusInfo[hostname] = []string{}
|
||||
|
|
@ -124,6 +126,11 @@ func statusRun(opts *StatusOptions) error {
|
|||
addMsg("%s Git operations for %s configured to use %s protocol.",
|
||||
utils.GreenCheck(), hostname, utils.Bold(proto))
|
||||
}
|
||||
tokenDisplay := "*******************"
|
||||
if opts.ShowToken {
|
||||
tokenDisplay = token
|
||||
}
|
||||
addMsg("%s Token: %s", utils.GreenCheck(), tokenDisplay)
|
||||
}
|
||||
addMsg("")
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,13 @@ func Test_NewCmdStatus(t *testing.T) {
|
|||
Hostname: "ellie.williams",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "show token",
|
||||
cli: "--show-token",
|
||||
wants: StatusOptions{
|
||||
ShowToken: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
|
@ -74,23 +81,6 @@ func Test_statusRun(t *testing.T) {
|
|||
wantErr *regexp.Regexp
|
||||
wantErrOut *regexp.Regexp
|
||||
}{
|
||||
{
|
||||
name: "hostname set",
|
||||
opts: &StatusOptions{
|
||||
Hostname: "joel.miller",
|
||||
},
|
||||
cfg: func(c config.Config) {
|
||||
_ = c.Set("joel.miller", "oauth_token", "abc123")
|
||||
_ = c.Set("github.com", "oauth_token", "abc123")
|
||||
},
|
||||
httpStubs: func(reg *httpmock.Registry) {
|
||||
reg.Register(httpmock.REST("GET", "api/v3/"), httpmock.ScopesResponder("repo,read:org,"))
|
||||
reg.Register(
|
||||
httpmock.GraphQL(`query UserCurrent\b`),
|
||||
httpmock.StringResponse(`{"data":{"viewer":{"login":"tess"}}}`))
|
||||
},
|
||||
wantErrOut: regexp.MustCompile(`Logged in to joel.miller as.*tess`),
|
||||
},
|
||||
{
|
||||
name: "hostname set",
|
||||
opts: &StatusOptions{
|
||||
|
|
@ -161,6 +151,46 @@ func Test_statusRun(t *testing.T) {
|
|||
},
|
||||
wantErrOut: regexp.MustCompile(`(?s)Logged in to github.com as.*tess.*Logged in to joel.miller as.*tess`),
|
||||
},
|
||||
{
|
||||
name: "hide token",
|
||||
opts: &StatusOptions{},
|
||||
cfg: func(c config.Config) {
|
||||
_ = c.Set("joel.miller", "oauth_token", "abc123")
|
||||
_ = c.Set("github.com", "oauth_token", "xyz456")
|
||||
},
|
||||
httpStubs: func(reg *httpmock.Registry) {
|
||||
reg.Register(httpmock.REST("GET", "api/v3/"), httpmock.ScopesResponder("repo,read:org,"))
|
||||
reg.Register(httpmock.REST("GET", ""), httpmock.ScopesResponder("repo,read:org,"))
|
||||
reg.Register(
|
||||
httpmock.GraphQL(`query UserCurrent\b`),
|
||||
httpmock.StringResponse(`{"data":{"viewer":{"login":"tess"}}}`))
|
||||
reg.Register(
|
||||
httpmock.GraphQL(`query UserCurrent\b`),
|
||||
httpmock.StringResponse(`{"data":{"viewer":{"login":"tess"}}}`))
|
||||
},
|
||||
wantErrOut: regexp.MustCompile(`(?s)Token: \*{19}.*Token: \*{19}`),
|
||||
},
|
||||
{
|
||||
name: "show token",
|
||||
opts: &StatusOptions{
|
||||
ShowToken: true,
|
||||
},
|
||||
cfg: func(c config.Config) {
|
||||
_ = c.Set("joel.miller", "oauth_token", "abc123")
|
||||
_ = c.Set("github.com", "oauth_token", "xyz456")
|
||||
},
|
||||
httpStubs: func(reg *httpmock.Registry) {
|
||||
reg.Register(httpmock.REST("GET", "api/v3/"), httpmock.ScopesResponder("repo,read:org,"))
|
||||
reg.Register(httpmock.REST("GET", ""), httpmock.ScopesResponder("repo,read:org,"))
|
||||
reg.Register(
|
||||
httpmock.GraphQL(`query UserCurrent\b`),
|
||||
httpmock.StringResponse(`{"data":{"viewer":{"login":"tess"}}}`))
|
||||
reg.Register(
|
||||
httpmock.GraphQL(`query UserCurrent\b`),
|
||||
httpmock.StringResponse(`{"data":{"viewer":{"login":"tess"}}}`))
|
||||
},
|
||||
wantErrOut: regexp.MustCompile(`(?s)Token: xyz456.*Token: abc123`),
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue