bf9395e022
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / results (push) Has been cancelled
CI / deadcode (push) Has been cancelled
CI / e2e-live (push) Has been cancelled
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package cmdutil
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
const skipAuthCheckKey = "skipAuthCheck"
|
|
const annotationSupportedIdentities = "lark:supportedIdentities"
|
|
|
|
// SetSupportedIdentities marks which identities a command supports.
|
|
func SetSupportedIdentities(cmd *cobra.Command, identities []string) {
|
|
if cmd.Annotations == nil {
|
|
cmd.Annotations = map[string]string{}
|
|
}
|
|
cmd.Annotations[annotationSupportedIdentities] = strings.Join(identities, ",")
|
|
}
|
|
|
|
// GetSupportedIdentities returns the declared identities, or nil if not declared.
|
|
func GetSupportedIdentities(cmd *cobra.Command) []string {
|
|
v, ok := cmd.Annotations[annotationSupportedIdentities]
|
|
if !ok || v == "" {
|
|
return nil
|
|
}
|
|
return strings.Split(v, ",")
|
|
}
|
|
|
|
// DisableAuthCheck marks a command (and all its children) as not requiring auth.
|
|
func DisableAuthCheck(cmd *cobra.Command) {
|
|
if cmd.Annotations == nil {
|
|
cmd.Annotations = map[string]string{}
|
|
}
|
|
cmd.Annotations[skipAuthCheckKey] = "true"
|
|
}
|
|
|
|
// IsAuthCheckDisabled returns true if the command or any ancestor has auth check disabled.
|
|
func IsAuthCheckDisabled(cmd *cobra.Command) bool {
|
|
for c := cmd; c != nil; c = c.Parent() {
|
|
if c.Annotations != nil && c.Annotations[skipAuthCheckKey] == "true" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|