MCPcopy Index your code
hub / github.com/devspace-sh/devspace / Login

Method Login

pkg/devspace/docker/auth.go:35–103  ·  view source on GitHub ↗

Login logs the user into docker

(ctx context.Context, registryURL, user, password string, checkCredentialsStore, saveAuthConfig, relogin bool)

Source from the content-addressed store, hash-verified

33
34// Login logs the user into docker
35func (c *client) Login(ctx context.Context, registryURL, user, password string, checkCredentialsStore, saveAuthConfig, relogin bool) (*dockerregistry.AuthConfig, error) {
36 isDefaultRegistry, serverAddress, err := c.GetRegistryEndpoint(ctx, registryURL)
37 if err != nil {
38 return nil, err
39 }
40
41 authConfig, err := getDefaultAuthConfig(checkCredentialsStore, serverAddress, isDefaultRegistry)
42 if err != nil || authConfig.Username == "" || authConfig.Password == "" || relogin {
43 authConfig.Username = strings.TrimSpace(user)
44 authConfig.Password = strings.TrimSpace(password)
45 }
46
47 // Check if docker is installed
48 _, err = c.Ping(ctx)
49 if err != nil {
50 // Docker is not installed, we cannot use client
51 service, err := registry.NewService(registry.ServiceOptions{})
52 if err != nil {
53 return nil, err
54 }
55
56 _, token, err := service.Auth(ctx, authConfig, "")
57 if err != nil {
58 return nil, err
59 }
60
61 if token != "" {
62 authConfig.Password = ""
63 authConfig.IdentityToken = token
64 }
65 } else {
66 // Docker is installed, we can use client
67 response, err := c.RegistryLogin(ctx, *authConfig)
68 if err != nil {
69 return nil, err
70 }
71
72 if response.IdentityToken != "" {
73 authConfig.Password = ""
74 authConfig.IdentityToken = response.IdentityToken
75 }
76 }
77
78 if saveAuthConfig {
79 configfile, err := LoadDockerConfig()
80 if err != nil {
81 return nil, err
82 }
83
84 // convert
85 authconfigConverted := &cliTypes.AuthConfig{}
86 err = util.Convert(authConfig, authconfigConverted)
87 if err != nil {
88 return nil, err
89 }
90
91 err = configfile.GetCredentialsStore(serverAddress).Store(*authconfigConverted)
92 if err != nil {

Callers 1

TestLoginFunction · 0.95

Calls 8

GetRegistryEndpointMethod · 0.95
ConvertFunction · 0.92
getDefaultAuthConfigFunction · 0.85
LoadDockerConfigFunction · 0.85
RegistryLoginMethod · 0.80
PingMethod · 0.65
SaveMethod · 0.65
ErrorfMethod · 0.45

Tested by 1

TestLoginFunction · 0.76