-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathhooks.go
More file actions
57 lines (51 loc) · 1.75 KB
/
hooks.go
File metadata and controls
57 lines (51 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package commands
import (
"github.com/MakeNowJust/heredoc"
"github.com/checkmarx/ast-cli/internal/params"
"github.com/checkmarx/ast-cli/internal/wrappers"
"github.com/pkg/errors"
"github.com/spf13/cobra"
)
// NewHooksCommand creates the hooks command with pre-commit subcommand
func NewHooksCommand(jwtWrapper wrappers.JWTWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) *cobra.Command {
hooksCmd := &cobra.Command{
Use: "hooks",
Short: "Manage Git hooks",
Long: "The hooks command enables the ability to manage Git hooks for Checkmarx One.",
Example: heredoc.Doc(
`
$ cx hooks pre-commit secrets-install-git-hook
$ cx hooks pre-commit secrets-scan
$ cx hooks pre-receive secrets-scan
`,
),
Annotations: map[string]string{
"command:doc": heredoc.Doc(
`
https://checkmarx.com/resource/documents/en/34965-365503-hooks.html
`,
),
},
}
// Add pre-commit and pre-receive subcommand
hooksCmd.AddCommand(PreCommitCommand(jwtWrapper, featureFlagsWrapper))
hooksCmd.AddCommand(PreReceiveCommand(jwtWrapper, featureFlagsWrapper))
return hooksCmd
}
func validateLicense(jwtWrapper wrappers.JWTWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) error {
scsLicensingV2Flag, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.ScsLicensingV2Enabled)
var licenseName string
if scsLicensingV2Flag.Status {
licenseName = params.SecretDetectionLabel
} else {
licenseName = params.EnterpriseSecretsLabel
}
allowed, err := jwtWrapper.IsAllowedEngine(licenseName)
if err != nil {
return errors.Wrapf(err, "Failed checking license")
}
if !allowed {
return errors.Errorf("Error: License validation failed. Please verify your CxOne license includes %s.", licenseName)
}
return nil
}