1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00
portainer/api/internal/registryutils/auth_header.go
cong meng 98972dec0d
feat(webhook) EE-2125 send registry auth haeder when update swarms service via webhook (#6220)
* feat(webhook) EE-2125 add some helpers to registry utils

* feat(webhook) EE-2125 persist registryID when creating a webhook

* feat(webhook) EE-2125 send registry auth header when executing a webhook

* feat(webhook) EE-2125 send registryID to backend when creating a service with webhook

* feat(webhook) EE-2125 use the initial registry ID to create webhook on editing service screen

* feat(webhook) EE-2125 update webhook when update registry

* feat(webhook) EE-2125 add endpoint of update webhook

* feat(webhook) EE-2125 code cleanup

* feat(webhook) EE-2125 fix a typo

* feat(webhook) EE-2125 fix circle import issue with unit test

Co-authored-by: Simon Meng <simon.meng@portainer.io>
2021-12-07 09:11:44 +13:00

36 lines
761 B
Go

package registryutils
import (
"encoding/base64"
"encoding/json"
portainer "github.com/portainer/portainer/api"
)
type (
authHeader struct {
Username string `json:"username"`
Password string `json:"password"`
ServerAddress string `json:"serveraddress"`
}
)
// GetRegistryAuthHeader generate the X-Registry-Auth header from registry
func GetRegistryAuthHeader(registry *portainer.Registry) (header string, err error) {
authHeader := authHeader{
ServerAddress: registry.URL,
}
authHeader.Username, authHeader.Password, err = GetRegEffectiveCredential(registry)
if err != nil {
return
}
headerData, err := json.Marshal(authHeader)
if err != nil {
return
}
header = base64.StdEncoding.EncodeToString(headerData)
return
}