mirror of https://github.com/portainer/portainer
26 lines
786 B
Go
26 lines
786 B
Go
|
package git
|
||
|
|
||
|
import (
|
||
|
"github.com/asaskevich/govalidator"
|
||
|
|
||
|
gittypes "github.com/portainer/portainer/api/git/types"
|
||
|
httperrors "github.com/portainer/portainer/api/http/errors"
|
||
|
)
|
||
|
|
||
|
func ValidateRepoConfig(repoConfig *gittypes.RepoConfig) error {
|
||
|
if govalidator.IsNull(repoConfig.URL) || !govalidator.IsURL(repoConfig.URL) {
|
||
|
return httperrors.NewInvalidPayloadError("Invalid repository URL. Must correspond to a valid URL format")
|
||
|
}
|
||
|
|
||
|
return ValidateRepoAuthentication(repoConfig.Authentication)
|
||
|
|
||
|
}
|
||
|
|
||
|
func ValidateRepoAuthentication(auth *gittypes.GitAuthentication) error {
|
||
|
if auth != nil && govalidator.IsNull(auth.Password) {
|
||
|
return httperrors.NewInvalidPayloadError("Invalid repository credentials. Password must be specified when authentication is enabled")
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|