linear.go 835 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package rules
  2. import (
  3. "regexp"
  4. "github.com/zricethezav/gitleaks/v8/config"
  5. )
  6. func LinearAPIToken() *config.Rule {
  7. // define rule
  8. r := config.Rule{
  9. Description: "Linear API Token",
  10. RuleID: "linear-api-key",
  11. Regex: regexp.MustCompile(`lin_api_(?i)[a-z0-9]{40}`),
  12. Keywords: []string{"lin_api_"},
  13. }
  14. // validate
  15. tps := []string{
  16. generateSampleSecret("linear", "lin_api_"+sampleAlphaNumeric40Token),
  17. }
  18. return validate(r, tps)
  19. }
  20. func LinearClientSecret() *config.Rule {
  21. // define rule
  22. r := config.Rule{
  23. Description: "Linear Client Secret",
  24. RuleID: "linear-client-secret",
  25. Regex: generateSemiGenericRegex([]string{"linear"}, hex32),
  26. Keywords: []string{"linear"},
  27. }
  28. // validate
  29. tps := []string{
  30. generateSampleSecret("linear", sampleHex32Token),
  31. }
  32. return validate(r, tps)
  33. }