@ -18,6 +18,7 @@ package flags
import (
import (
"fmt"
"fmt"
"sort"
"strings"
"strings"
"github.com/fluxcd/go-git-providers/gitprovider"
"github.com/fluxcd/go-git-providers/gitprovider"
@ -51,16 +52,26 @@ func (d *GitLabVisibility) Set(str string) error {
}
}
var visibility = gitprovider . RepositoryVisibility ( str )
var visibility = gitprovider . RepositoryVisibility ( str )
if ValidateRepositoryVisibility ( visibility ) != nil {
if ValidateRepositoryVisibility ( visibility ) != nil {
return fmt . Errorf ( "unsupported visibility '%s'" , str )
return fmt . Errorf ( "unsupported visibility '%s', must be one of: %s" ,
str , strings . Join ( gitLabVisibilities ( ) , ", " ) )
}
}
* d = GitLabVisibility ( visibility )
* d = GitLabVisibility ( visibility )
return nil
return nil
}
}
func ( d * GitLabVisibility ) Type ( ) string {
func ( d * GitLabVisibility ) Type ( ) string {
return "gitLabVisibility"
return strings . Join ( gitLabVisibilities ( ) , "|" )
}
}
func ( d * GitLabVisibility ) Description ( ) string {
func ( d * GitLabVisibility ) Description ( ) string {
return fmt . Sprintf ( "specifies the visibility of the repository. Valid values are public, private, internal" )
return "specifies the visibility of the repository"
}
func gitLabVisibilities ( ) [ ] string {
visibilities := make ( [ ] string , 0 , len ( supportedGitLabVisibilities ) )
for visibility := range supportedGitLabVisibilities {
visibilities = append ( visibilities , string ( visibility ) )
}
sort . Strings ( visibilities )
return visibilities
}
}