MCPcopy Create free account
hub / github.com/cli/cli / requiresUserCapabilityForScript

Function requiresUserCapabilityForScript

acceptance/user_capability_test.go:43–82  ·  view source on GitHub ↗
(file string)

Source from the content-addressed store, hash-verified

41}
42
43func requiresUserCapabilityForScript(file string) (bool, error) {
44 f, err := os.Open(file)
45 if err != nil {
46 return false, err
47 }
48 defer f.Close()
49
50 scanner := bufio.NewScanner(f)
51 if !scanner.Scan() {
52 if err := scanner.Err(); err != nil {
53 return false, err
54 }
55 return false, fmt.Errorf("%s: first line must be '# requires-user-capability: true' or '# requires-user-capability: false'", file)
56 }
57
58 var requiresUserCapability bool
59 switch strings.TrimSuffix(scanner.Text(), "\r") {
60 case "# requires-user-capability: true":
61 requiresUserCapability = true
62 case "# requires-user-capability: false":
63 requiresUserCapability = false
64 default:
65 return false, fmt.Errorf("%s: first line must be '# requires-user-capability: true' or '# requires-user-capability: false'", file)
66 }
67
68 for scanner.Scan() {
69 line := strings.TrimSuffix(scanner.Text(), "\r")
70 if strings.HasPrefix(line, "-- ") && strings.HasSuffix(line, " --") {
71 break
72 }
73 if strings.HasPrefix(line, "# requires-user-capability:") {
74 return false, fmt.Errorf("%s: script must contain exactly one requires-user-capability declaration", file)
75 }
76 }
77 if err := scanner.Err(); err != nil {
78 return false, err
79 }
80
81 return requiresUserCapability, nil
82}
83
84func validateFixtureRepositoryDeclaration(file string) error {
85 f, err := os.Open(file)

Calls 4

OpenMethod · 0.80
ErrMethod · 0.80
CloseMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected