MCPcopy Create free account
hub / github.com/bytebase/bytebase / GetPolicyResourceTypeAndResource

Function GetPolicyResourceTypeAndResource

backend/common/resource_name.go:663–696  ·  view source on GitHub ↗
(requestName string)

Source from the content-addressed store, hash-verified

661}
662
663func GetPolicyResourceTypeAndResource(requestName string) (storepb.Policy_Resource, *string, error) {
664 if requestName == "" {
665 return storepb.Policy_RESOURCE_UNSPECIFIED, nil, connect.NewError(connect.CodeInvalidArgument, errors.New("policy parent resource name must not be empty"))
666 }
667
668 if strings.HasPrefix(requestName, WorkspacePrefix) {
669 return storepb.Policy_WORKSPACE, &requestName, nil
670 }
671
672 if strings.HasPrefix(requestName, ProjectNamePrefix) {
673 projectID, err := GetProjectID(requestName)
674 if err != nil {
675 return storepb.Policy_RESOURCE_UNSPECIFIED, nil, connect.NewError(connect.CodeInvalidArgument, err)
676 }
677 if projectID == "-" {
678 return storepb.Policy_PROJECT, nil, nil
679 }
680 return storepb.Policy_PROJECT, &requestName, nil
681 }
682
683 if strings.HasPrefix(requestName, EnvironmentNamePrefix) {
684 // environment policy request name should be environments/{environment id}
685 environmentID, err := GetEnvironmentID(requestName)
686 if err != nil {
687 return storepb.Policy_RESOURCE_UNSPECIFIED, nil, err
688 }
689 if environmentID == "-" {
690 return storepb.Policy_ENVIRONMENT, nil, nil
691 }
692 return storepb.Policy_ENVIRONMENT, &requestName, nil
693 }
694
695 return storepb.Policy_RESOURCE_UNSPECIFIED, nil, errors.Errorf("unknown request name %s", requestName)
696}
697
698// IsServiceAccountEmail checks if the email is a service account email.
699func IsServiceAccountEmail(email string) bool {

Callers 5

getQueryDataPolicyMethod · 0.92
ListPoliciesMethod · 0.92
findPolicyMessageMethod · 0.92
createPolicyMessageMethod · 0.92

Calls 3

GetProjectIDFunction · 0.85
GetEnvironmentIDFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected