gitleaks.toml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. title = "gitleaks config"
  2. # Gitleaks rules are defined by regular expressions and entropy ranges.
  3. # Some secrets have unique signatures which make detecting those secrets easy.
  4. # Examples of those secrets would be GitLab Personal Access Tokens, AWS keys, and GitHub Access Tokens.
  5. # All these examples have defined prefixes like `glpat`, `AKIA`, `ghp_`, etc.
  6. #
  7. # Other secrets might just be a hash which means we need to write more complex rules to verify
  8. # that what we are matching is a secret.
  9. #
  10. # Here is an example of a semi-generic secret
  11. #
  12. # discord_client_secret = "8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ"
  13. #
  14. # We can write a regular expression to capture the variable name (identifier),
  15. # the assignment symbol (like '=' or ':='), and finally the actual secret.
  16. # The structure of a rule to match this example secret is below:
  17. #
  18. # Beginning string
  19. # quotation
  20. # │ End string quotation
  21. # │ │
  22. # ▼ ▼
  23. # (?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_\-]{32})['\"]
  24. #
  25. # ▲ ▲ ▲
  26. # │ │ │
  27. # │ │ │
  28. # identifier assignment symbol
  29. # Secret
  30. #
  31. [[rules]]
  32. id = "gitlab-pat"
  33. description = "GitLab Personal Access Token"
  34. regex = '''glpat-[0-9a-zA-Z\-\_]{20}'''
  35. [[rules]]
  36. id = "aws-access-token"
  37. description = "AWS"
  38. regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'''
  39. # Cryptographic keys
  40. [[rules]]
  41. id = "PKCS8-PK"
  42. description = "PKCS8 private key"
  43. regex = '''-----BEGIN PRIVATE KEY-----'''
  44. [[rules]]
  45. id = "RSA-PK"
  46. description = "RSA private key"
  47. regex = '''-----BEGIN RSA PRIVATE KEY-----'''
  48. [[rules]]
  49. id = "OPENSSH-PK"
  50. description = "SSH private key"
  51. regex = '''-----BEGIN OPENSSH PRIVATE KEY-----'''
  52. [[rules]]
  53. id = "PGP-PK"
  54. description = "PGP private key"
  55. regex = '''-----BEGIN PGP PRIVATE KEY BLOCK-----'''
  56. [[rules]]
  57. id = "github-pat"
  58. description = "GitHub Personal Access Token"
  59. regex = '''ghp_[0-9a-zA-Z]{36}'''
  60. [[rules]]
  61. id = "github-oauth"
  62. description = "GitHub OAuth Access Token"
  63. regex = '''gho_[0-9a-zA-Z]{36}'''
  64. [[rules]]
  65. id = "SSH-DSA-PK"
  66. description = "SSH (DSA) private key"
  67. regex = '''-----BEGIN DSA PRIVATE KEY-----'''
  68. [[rules]]
  69. id = "SSH-EC-PK"
  70. description = "SSH (EC) private key"
  71. regex = '''-----BEGIN EC PRIVATE KEY-----'''
  72. [[rules]]
  73. id = "github-app-token"
  74. description = "GitHub App Token"
  75. regex = '''(ghu|ghs)_[0-9a-zA-Z]{36}'''
  76. [[rules]]
  77. id = "github-refresh-token"
  78. description = "GitHub Refresh Token"
  79. regex = '''ghr_[0-9a-zA-Z]{76}'''
  80. [[rules]]
  81. id = "shopify-shared-secret"
  82. description = "Shopify shared secret"
  83. regex = '''shpss_[a-fA-F0-9]{32}'''
  84. [[rules]]
  85. id = "shopify-access-token"
  86. description = "Shopify access token"
  87. regex = '''shpat_[a-fA-F0-9]{32}'''
  88. [[rules]]
  89. id = "shopify-custom-access-token"
  90. description = "Shopify custom app access token"
  91. regex = '''shpca_[a-fA-F0-9]{32}'''
  92. [[rules]]
  93. id = "shopify-private-app-access-token"
  94. description = "Shopify private app access token"
  95. regex = '''shppa_[a-fA-F0-9]{32}'''
  96. [[rules]]
  97. id = "slack-access-token"
  98. description = "Slack token"
  99. regex = '''xox[baprs]-([0-9a-zA-Z]{10,48})?'''
  100. [[rules]]
  101. id = "stripe-access-token"
  102. description = "Stripe"
  103. regex = '''(?i)(sk|pk)_(test|live)_[0-9a-z]{10,32}'''
  104. [[rules]]
  105. id = "pypi-upload-token"
  106. description = "PyPI upload token"
  107. regex = '''pypi-AgEIcHlwaS5vcmc[A-Za-z0-9\-_]{50,1000}'''
  108. [[rules]]
  109. id = "gcp-service-account"
  110. description = "Google (GCP) Service-account"
  111. regex = '''\"type\": \"service_account\"'''
  112. [[rules]]
  113. id = "heroku-api-key"
  114. description = "Heroku API Key"
  115. regex = ''' (?i)(heroku[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})['\"]'''
  116. secretGroup = 3
  117. [[rules]]
  118. id = "slack-web-hook"
  119. description = "Slack Webhook"
  120. regex = '''https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}'''
  121. [[rules]]
  122. id = "twilio-api-key"
  123. description = "Twilio API Key"
  124. regex = '''SK[0-9a-fA-F]{32}'''
  125. [[rules]]
  126. id = "age-secret-key"
  127. description = "Age secret key"
  128. regex = '''AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}'''
  129. [[rules]]
  130. id = "facebook-token"
  131. description = "Facebook token"
  132. regex = '''(?i)(facebook[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
  133. secretGroup = 3
  134. [[rules]]
  135. id = "twitter-token"
  136. description = "Twitter token"
  137. regex = '''(?i)(twitter[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{35,44})['\"]'''
  138. secretGroup = 3
  139. [[rules]]
  140. id = "adobe-client-id"
  141. description = "Adobe Client ID (Oauth Web)"
  142. regex = '''(?i)(adobe[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
  143. secretGroup = 3
  144. [[rules]]
  145. id = "adobe-client-secret"
  146. description = "Adobe Client Secret"
  147. regex = '''(p8e-)(?i)[a-z0-9]{32}'''
  148. [[rules]]
  149. id = "alibaba-access-key-id"
  150. description = "Alibaba AccessKey ID"
  151. regex = '''(LTAI)(?i)[a-z0-9]{20}'''
  152. [[rules]]
  153. id = "alibaba-secret-key"
  154. description = "Alibaba Secret Key"
  155. regex = '''(?i)(alibaba[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{30})['\"]'''
  156. secretGroup = 3
  157. [[rules]]
  158. id = "asana-client-id"
  159. description = "Asana Client ID"
  160. regex = '''(?i)(asana[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9]{16})['\"]'''
  161. secretGroup = 3
  162. [[rules]]
  163. id = "asana-client-secret"
  164. description = "Asana Client Secret"
  165. regex = '''(?i)(asana[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{32})['\"]'''
  166. secretGroup = 3
  167. [[rules]]
  168. id = "atlassian-api-token"
  169. description = "Atlassian API token"
  170. regex = '''(?i)(atlassian[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{24})['\"]'''
  171. secretGroup = 3
  172. [[rules]]
  173. id = "bitbucket-client-id"
  174. description = "Bitbucket client ID"
  175. regex = '''(?i)(bitbucket[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{32})['\"]'''
  176. secretGroup = 3
  177. [[rules]]
  178. id = "bitbucket-client-secret"
  179. description = "Bitbucket client secret"
  180. regex = '''(?i)(bitbucket[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9_\-]{64})['\"]'''
  181. secretGroup = 3
  182. [[rules]]
  183. id = "beamer-api-token"
  184. description = "Beamer API token"
  185. regex = '''(?i)(beamer[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](b_[a-z0-9=_\-]{44})['\"]'''
  186. secretGroup = 3
  187. [[rules]]
  188. id = "clojars-api-token"
  189. description = "Clojars API token"
  190. regex = '''(CLOJARS_)(?i)[a-z0-9]{60}'''
  191. [[rules]]
  192. id = "contentful-delivery-api-token"
  193. description = "Contentful delivery API token"
  194. regex = '''(?i)(contentful[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9\-=_]{43})['\"]'''
  195. secretGroup = 3
  196. [[rules]]
  197. id = "databricks-api-token"
  198. description = "Databricks API token"
  199. regex = '''dapi[a-h0-9]{32}'''
  200. [[rules]]
  201. id = "discord-api-token"
  202. description = "Discord API key"
  203. regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{64})['\"]'''
  204. secretGroup = 3
  205. [[rules]]
  206. id = "discord-client-id"
  207. description = "Discord client ID"
  208. regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9]{18})['\"]'''
  209. secretGroup = 3
  210. [[rules]]
  211. id = "discord-client-secret"
  212. description = "Discord client secret"
  213. regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_\-]{32})['\"]'''
  214. secretGroup = 3
  215. [[rules]]
  216. id = "doppler-api-token"
  217. description = "Doppler API token"
  218. regex = '''['\"](dp\.pt\.)(?i)[a-z0-9]{43}['\"]'''
  219. [[rules]]
  220. id = "dropbox-api-secret"
  221. description = "Dropbox API secret/key"
  222. regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{15})['\"]'''
  223. [[rules]]
  224. id = "dropbox--api-key"
  225. description = "Dropbox API secret/key"
  226. regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{15})['\"]'''
  227. [[rules]]
  228. id = "dropbox-short-lived-api-token"
  229. description = "Dropbox short lived API token"
  230. regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](sl\.[a-z0-9\-=_]{135})['\"]'''
  231. [[rules]]
  232. id = "dropbox-long-lived-api-token"
  233. description = "Dropbox long lived API token"
  234. regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"][a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\-_=]{43}['\"]'''
  235. [[rules]]
  236. id = "duffel-api-token"
  237. description = "Duffel API token"
  238. regex = '''['\"]duffel_(test|live)_(?i)[a-z0-9_-]{43}['\"]'''
  239. [[rules]]
  240. id = "dynatrace-api-token"
  241. description = "Dynatrace API token"
  242. regex = '''['\"]dt0c01\.(?i)[a-z0-9]{24}\.[a-z0-9]{64}['\"]'''
  243. [[rules]]
  244. id = "easypost-api-token"
  245. description = "EasyPost API token"
  246. regex = '''['\"]EZAK(?i)[a-z0-9]{54}['\"]'''
  247. [[rules]]
  248. id = "easypost-test-api-token"
  249. description = "EasyPost test API token"
  250. regex = '''['\"]EZTK(?i)[a-z0-9]{54}['\"]'''
  251. [[rules]]
  252. id = "fastly-api-token"
  253. description = "Fastly API token"
  254. regex = '''(?i)(fastly[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9\-=_]{32})['\"]'''
  255. secretGroup = 3
  256. [[rules]]
  257. id = "finicity-client-secret"
  258. description = "Finicity client secret"
  259. regex = '''(?i)(finicity[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{20})['\"]'''
  260. secretGroup = 3
  261. [[rules]]
  262. id = "finicity-api-token"
  263. description = "Finicity API token"
  264. regex = '''(?i)(finicity[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
  265. secretGroup = 3
  266. [[rules]]
  267. id = "flutterwave-public-key"
  268. description = "Flutterwave public key"
  269. regex = '''FLWPUBK_TEST-(?i)[a-h0-9]{32}-X'''
  270. [[rules]]
  271. id = "flutterwave-secret-key"
  272. description = "Flutterwave secret key"
  273. regex = '''FLWSECK_TEST-(?i)[a-h0-9]{32}-X'''
  274. [[rules]]
  275. id = "flutterwave-enc-key"
  276. description = "Flutterwave encrypted key"
  277. regex = '''FLWSECK_TEST[a-h0-9]{12}'''
  278. [[rules]]
  279. id = "frameio-api-token"
  280. description = "Frame.io API token"
  281. regex = '''fio-u-(?i)[a-z0-9\-_=]{64}'''
  282. [[rules]]
  283. id = "gocardless-api-token"
  284. description = "GoCardless API token"
  285. regex = '''['\"]live_(?i)[a-z0-9\-_=]{40}['\"]'''
  286. [[rules]]
  287. id = "grafana-api-token"
  288. description = "Grafana API token"
  289. regex = '''['\"]eyJrIjoi(?i)[a-z0-9\-_=]{72,92}['\"]'''
  290. [[rules]]
  291. id = "hashicorp-tf-api-token"
  292. description = "HashiCorp Terraform user/org API token"
  293. regex = '''['\"](?i)[a-z0-9]{14}\.atlasv1\.[a-z0-9\-_=]{60,70}['\"]'''
  294. [[rules]]
  295. id = "hubspot-api-token"
  296. description = "HubSpot API token"
  297. regex = '''(?i)(hubspot[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
  298. secretGroup = 3
  299. [[rules]]
  300. id = "intercom-api-token"
  301. description = "Intercom API token"
  302. regex = '''(?i)(intercom[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_]{60})['\"]'''
  303. secretGroup = 3
  304. [[rules]]
  305. id = "intercom-client-secret"
  306. description = "Intercom client secret/ID"
  307. regex = '''(?i)(intercom[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
  308. secretGroup = 3
  309. [[rules]]
  310. id = "ionic-api-token"
  311. description = "Ionic API token"
  312. regex = '''(?i)(ionic[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](ion_[a-z0-9]{42})['\"]'''
  313. [[rules]]
  314. id = "linear-api-token"
  315. description = "Linear API token"
  316. regex = '''lin_api_(?i)[a-z0-9]{40}'''
  317. [[rules]]
  318. id = "linear-client-secret"
  319. description = "Linear client secret/ID"
  320. regex = '''(?i)(linear[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
  321. secretGroup = 3
  322. [[rules]]
  323. id = "lob-api-key"
  324. description = "Lob API Key"
  325. regex = '''(?i)(lob[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]((live|test)_[a-f0-9]{35})['\"]'''
  326. secretGroup = 3
  327. [[rules]]
  328. id = "lob-pub-api-key"
  329. description = "Lob Publishable API Key"
  330. regex = '''(?i)(lob[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]((test|live)_pub_[a-f0-9]{31})['\"]'''
  331. secretGroup = 3
  332. [[rules]]
  333. id = "mailchimp-api-key"
  334. description = "Mailchimp API key"
  335. regex = '''(?i)(mailchimp[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32}-us20)['\"]'''
  336. secretGroup = 3
  337. [[rules]]
  338. id = "mailgun-private-api-token"
  339. description = "Mailgun private API token"
  340. regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](key-[a-f0-9]{32})['\"]'''
  341. secretGroup = 3
  342. [[rules]]
  343. id = "mailgun-pub-key"
  344. description = "Mailgun public validation key"
  345. regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](pubkey-[a-f0-9]{32})['\"]'''
  346. secretGroup = 3
  347. [[rules]]
  348. id = "mailgun-signing-key"
  349. description = "Mailgun webhook signing key"
  350. regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})['\"]'''
  351. secretGroup = 3
  352. [[rules]]
  353. id = "mapbox-api-token"
  354. description = "Mapbox API token"
  355. regex = '''(?i)(pk\.[a-z0-9]{60}\.[a-z0-9]{22})'''
  356. [[rules]]
  357. id = "messagebird-api-token"
  358. description = "MessageBird API token"
  359. regex = '''(?i)(messagebird[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{25})['\"]'''
  360. secretGroup = 3
  361. [[rules]]
  362. id = "messagebird-client-id"
  363. description = "MessageBird API client ID"
  364. regex = '''(?i)(messagebird[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
  365. secretGroup = 3
  366. [[rules]]
  367. id = "new-relic-user-api-key"
  368. description = "New Relic user API Key"
  369. regex = '''['\"](NRAK-[A-Z0-9]{27})['\"]'''
  370. [[rules]]
  371. id = "new-relic-user-api-id"
  372. description = "New Relic user API ID"
  373. regex = '''(?i)(newrelic[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([A-Z0-9]{64})['\"]'''
  374. secretGroup = 3
  375. [[rules]]
  376. id = "new-relic-browser-api-token"
  377. description = "New Relic ingest browser API token"
  378. regex = '''['\"](NRJS-[a-f0-9]{19})['\"]'''
  379. [[rules]]
  380. id = "npm-access-token"
  381. description = "npm access token"
  382. regex = '''['\"](npm_(?i)[a-z0-9]{36})['\"]'''
  383. [[rules]]
  384. id = "planetscale-password"
  385. description = "PlanetScale password"
  386. regex = '''pscale_pw_(?i)[a-z0-9\-_\.]{43}'''
  387. [[rules]]
  388. id = "planetscale-api-token"
  389. description = "PlanetScale API token"
  390. regex = '''pscale_tkn_(?i)[a-z0-9\-_\.]{43}'''
  391. [[rules]]
  392. id = "postman-api-token"
  393. description = "Postman API token"
  394. regex = '''PMAK-(?i)[a-f0-9]{24}\-[a-f0-9]{34}'''
  395. [[rules]]
  396. id = "pulumi-api-token"
  397. description = "Pulumi API token"
  398. regex = '''pul-[a-f0-9]{40}'''
  399. [[rules]]
  400. id = "rubygems-api-token"
  401. description = "Rubygem API token"
  402. regex = '''rubygems_[a-f0-9]{48}'''
  403. [[rules]]
  404. id = "sendgrid-api-token"
  405. description = "SendGrid API token"
  406. regex = '''SG\.(?i)[a-z0-9_\-\.]{66}'''
  407. [[rules]]
  408. id = "sendinblue-api-token"
  409. description = "Sendinblue API token"
  410. regex = '''xkeysib-[a-f0-9]{64}\-(?i)[a-z0-9]{16}'''
  411. [[rules]]
  412. id = "shippo-api-token"
  413. description = "Shippo API token"
  414. regex = '''shippo_(live|test)_[a-f0-9]{40}'''
  415. [[rules]]
  416. id = "linkedin-client-secret"
  417. description = "LinkedIn Client secret"
  418. regex = '''(?i)(linkedin[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z]{16})['\"]'''
  419. secretGroup = 3
  420. [[rules]]
  421. id = "linkedin-client-id"
  422. description = "LinkedIn Client ID"
  423. regex = '''(?i)(linkedin[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{14})['\"]'''
  424. secretGroup = 3
  425. [[rules]]
  426. id = "twitch-api-token"
  427. description = "Twitch API token"
  428. regex = '''(?i)(twitch[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{30})['\"]'''
  429. secretGroup = 3
  430. [[rules]]
  431. id = "typeform-api-token"
  432. description = "Typeform API token"
  433. regex = '''(?i)(typeform[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}(tfp_[a-z0-9\-_\.=]{59})'''
  434. secretGroup = 3
  435. [[rules]]
  436. id = "generic-api-key"
  437. description = "Generic API Key"
  438. regex = '''(?i)((key|api[^Version]|token|secret|password)[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9a-zA-Z\-_=]{8,64})['\"]'''
  439. entropy = 3.7
  440. secretGroup = 4
  441. [allowlist]
  442. description = "global allow lists"
  443. regexes = [
  444. '''219-09-9999''',
  445. '''078-05-1120''',
  446. '''(9[0-9]{2}|666)-\d{2}-\d{4}''',
  447. ]
  448. paths = [
  449. '''gitleaks.toml''',
  450. '''(.*?)(jpg|gif|doc|pdf|bin|svg|socket)$''',
  451. '''(go.mod|go.sum)$'''
  452. ]