(serverURL *url.URL, token string)
| 146 | } |
| 147 | |
| 148 | func (o Keyring) Write(serverURL *url.URL, token string) error { |
| 149 | host, err := normalizeHost(serverURL) |
| 150 | if err != nil { |
| 151 | return err |
| 152 | } |
| 153 | |
| 154 | existingJSON, err := o.provider.Get(o.serviceName) |
| 155 | if err != nil && !errors.Is(err, os.ErrNotExist) { |
| 156 | return xerrors.Errorf("read existing credentials: %w", err) |
| 157 | } |
| 158 | |
| 159 | creds, err := parseCredentialsJSON(existingJSON) |
| 160 | if err != nil { |
| 161 | return xerrors.Errorf("write: parse existing credentials: %w", err) |
| 162 | } |
| 163 | |
| 164 | // Upsert the credential for this URL. |
| 165 | creds[host] = credential{ |
| 166 | CoderURL: host, |
| 167 | APIToken: token, |
| 168 | } |
| 169 | |
| 170 | credsJSON, err := json.Marshal(creds) |
| 171 | if err != nil { |
| 172 | return xerrors.Errorf("marshal credentials: %w", err) |
| 173 | } |
| 174 | |
| 175 | err = o.provider.Set(o.serviceName, string(credsJSON)) |
| 176 | if err != nil { |
| 177 | return xerrors.Errorf("write credentials to keyring: %w", err) |
| 178 | } |
| 179 | return nil |
| 180 | } |
| 181 | |
| 182 | func (o Keyring) Delete(serverURL *url.URL) error { |
| 183 | host, err := normalizeHost(serverURL) |
nothing calls this directly
no test coverage detected