in internal/command/personalaccesstoken/personalaccesstoken.go [64:99]
func (c *Command) parseTokenArgs() error {
if len(c.Args.SSHArgs) < 3 || len(c.Args.SSHArgs) > 4 {
return errors.New(usageText) // nolint:stylecheck // usageText is customer facing
}
var rectfiedScopes []string
requestedScopes := strings.Split(c.Args.SSHArgs[2], ",")
if len(c.Config.PATConfig.AllowedScopes) > 0 {
for _, requestedScope := range requestedScopes {
if slices.Contains(c.Config.PATConfig.AllowedScopes, requestedScope) {
rectfiedScopes = append(rectfiedScopes, requestedScope)
}
}
} else {
rectfiedScopes = requestedScopes
}
c.TokenArgs = &tokenArgs{
Name: c.Args.SSHArgs[1],
Scopes: rectfiedScopes,
}
if len(c.Args.SSHArgs) < 4 {
c.TokenArgs.ExpiresDate = time.Now().AddDate(0, 0, 30).Format(expiresDateFormat)
return nil
}
rawTTL := c.Args.SSHArgs[3]
TTL, err := strconv.Atoi(rawTTL)
if err != nil || TTL < 0 {
return fmt.Errorf("Invalid value for days_ttl: '%s'", rawTTL) //nolint:stylecheck //message is customer facing
}
c.TokenArgs.ExpiresDate = time.Now().AddDate(0, 0, TTL+1).Format(expiresDateFormat)
return nil
}