teams.go 956 B

1234567891011121314151617181920212223242526272829
  1. package rules
  2. import (
  3. "regexp"
  4. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  5. "github.com/zricethezav/gitleaks/v8/config"
  6. )
  7. func TeamsWebhook() *config.Rule {
  8. // define rule
  9. r := config.Rule{
  10. Description: "Microsoft Teams Webhook",
  11. RuleID: "microsoft-teams-webhook",
  12. Regex: regexp.MustCompile(
  13. `https:\/\/[a-z0-9]+\.webhook\.office\.com\/webhookb2\/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}\/IncomingWebhook\/[a-z0-9]{32}\/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}`),
  14. Keywords: []string{
  15. "webhook.office.com",
  16. "webhookb2",
  17. "IncomingWebhook",
  18. },
  19. }
  20. // validate
  21. tps := []string{
  22. "https://mycompany.webhook.office.com/webhookb2/" + secrets.NewSecret(`[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}\/IncomingWebhook\/[a-z0-9]{32}\/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}`), // gitleaks:allow
  23. }
  24. return validate(r, tps, nil)
  25. }