mirror of
https://github.com/containrrr/watchtower.git
synced 2025-02-07 19:30:19 +02:00
34 lines
999 B
Go
34 lines
999 B
Go
|
package registry
|
||
|
|
||
|
import (
|
||
|
"github.com/docker/docker/api/types"
|
||
|
log "github.com/sirupsen/logrus"
|
||
|
)
|
||
|
|
||
|
// GetPullOptions creates a struct with all options needed for pulling images from a registry
|
||
|
func GetPullOptions(imageName string) (types.ImagePullOptions, error) {
|
||
|
auth, err := EncodedAuth(imageName)
|
||
|
log.Debugf("Got image name: %s", imageName)
|
||
|
if err != nil {
|
||
|
return types.ImagePullOptions{}, err
|
||
|
}
|
||
|
|
||
|
log.Debugf("Got auth value: %s", auth)
|
||
|
if auth == "" {
|
||
|
return types.ImagePullOptions{}, nil
|
||
|
}
|
||
|
|
||
|
return types.ImagePullOptions{
|
||
|
RegistryAuth: auth,
|
||
|
PrivilegeFunc: DefaultAuthHandler,
|
||
|
}, nil
|
||
|
}
|
||
|
|
||
|
// DefaultAuthHandler will be invoked if an AuthConfig is rejected
|
||
|
// It could be used to return a new value for the "X-Registry-Auth" authentication header,
|
||
|
// but there's no point trying again with the same value as used in AuthConfig
|
||
|
func DefaultAuthHandler() (string, error) {
|
||
|
log.Debug("Authentication request was rejected. Trying again without authentication")
|
||
|
return "", nil
|
||
|
}
|