1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-12-18 08:26:45 +02:00
woodpecker/vendor/github.com/samalba/dockerclient/auth.go

40 lines
1.1 KiB
Go
Raw Normal View History

2015-05-22 20:37:40 +02:00
package dockerclient
import (
"bytes"
"encoding/base64"
"encoding/json"
)
// AuthConfig hold parameters for authenticating with the docker registry
type AuthConfig struct {
2016-03-07 21:23:49 +02:00
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Email string `json:"email,omitempty"`
RegistryToken string `json:"registrytoken,omitempty"`
2015-05-22 20:37:40 +02:00
}
// encode the auth configuration struct into base64 for the X-Registry-Auth header
2015-09-30 03:21:17 +02:00
func (c *AuthConfig) encode() (string, error) {
2015-05-22 20:37:40 +02:00
var buf bytes.Buffer
2015-09-30 03:21:17 +02:00
if err := json.NewEncoder(&buf).Encode(c); err != nil {
return "", err
}
return base64.URLEncoding.EncodeToString(buf.Bytes()), nil
}
// ConfigFile holds parameters for authenticating during a BuildImage request
type ConfigFile struct {
Configs map[string]AuthConfig `json:"configs,omitempty"`
rootPath string
}
// encode the configuration struct into base64 for the X-Registry-Config header
func (c *ConfigFile) encode() (string, error) {
var buf bytes.Buffer
if err := json.NewEncoder(&buf).Encode(c); err != nil {
return "", err
}
return base64.URLEncoding.EncodeToString(buf.Bytes()), nil
2015-05-22 20:37:40 +02:00
}