commands/token/accesslevel/accesslevelvalue.go (40 lines of code) (raw):

package accesslevel import ( "fmt" "strings" gitlab "gitlab.com/gitlab-org/api/client-go" ) type AccessLevel struct { Value gitlab.AccessLevelValue } var accessLevels = map[string]AccessLevel{ "no": {gitlab.NoPermissions}, "minimal": {gitlab.MinimalAccessPermissions}, "guest": {gitlab.GuestPermissions}, "reporter": {gitlab.ReporterPermissions}, "developer": {gitlab.DeveloperPermissions}, "maintainer": {gitlab.MaintainerPermissions}, "owner": {gitlab.OwnerPermissions}, "admin": {gitlab.AdminPermissions}, } func CreateAccessLevelFromString(s string) (AccessLevel, error) { if level, ok := accessLevels[strings.ToLower(s)]; ok { return level, nil } return AccessLevel{gitlab.NoPermissions}, fmt.Errorf("invalid access level: %s", s) } func (a *AccessLevel) String() string { for name, level := range accessLevels { if level.Value == a.Value { return name } } return fmt.Sprintf("%d", a.Value) } func (a *AccessLevel) Set(value string) (err error) { *a, err = CreateAccessLevelFromString(value) return err } func (a *AccessLevel) Type() string { return "AccessLevel" }