Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(linter): add oxc-security/api-keys #5906

Merged
merged 1 commit into from
Sep 22, 2024

Conversation

DonIsaac
Copy link
Contributor

@DonIsaac DonIsaac commented Sep 20, 2024

What This PR does

Adds a new oxc-security/api-key rule that scans for hard-coded API keys.

It is broken up into "secret rules", where each one is responsible for finding a different kind of key. It is architecturally identical to how lint rules themselves. This PR also includes the first of these rules, for AWS access key IDs.

Logic and rules are based on keyhunter. I've licensed that repo under GNU GPLv3, but it's my code and I can do what I want with it 😈 (read: I'm fine with it being MIT for oxc).

This PR is a complete feature in its own right, but does not represent the end of this work. See oxc-project/backlog#116 to track overall progress.

Copy link

graphite-app bot commented Sep 20, 2024

Your org has enabled the Graphite merge queue for merging into main

Add the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

Copy link
Contributor Author

DonIsaac commented Sep 20, 2024

@DonIsaac DonIsaac added the C-enhancement Category - New feature or request label Sep 20, 2024 — with Graphite App
@DonIsaac DonIsaac added the A-linter Area - Linter label Sep 20, 2024
Copy link

codspeed-hq bot commented Sep 20, 2024

CodSpeed Performance Report

Merging #5906 will not alter performance

Comparing don/09-19-feat_linter_add_oxc-security_api-keys_ (d24985e) with main (767602b)

Summary

✅ 29 untouched benchmarks

@DonIsaac DonIsaac force-pushed the don/09-19-feat_linter_add_oxc-security_api-keys_ branch from 78bb45a to 997064a Compare September 20, 2024 14:26
@DonIsaac DonIsaac changed the base branch from don/09-19-feat_linter_add_oxc-security_plugin to main September 20, 2024 14:26
@github-actions github-actions bot added the A-cli Area - CLI label Sep 20, 2024
@DonIsaac DonIsaac force-pushed the don/09-19-feat_linter_add_oxc-security_api-keys_ branch 4 times, most recently from 7f91349 to cdfd804 Compare September 20, 2024 16:45
@DonIsaac DonIsaac marked this pull request as ready for review September 20, 2024 16:45
@DonIsaac DonIsaac requested a review from Boshen September 20, 2024 16:45
@DonIsaac DonIsaac self-assigned this Sep 20, 2024
@DonIsaac DonIsaac added this to the Oxlint Beta Milestone milestone Sep 20, 2024
@DonIsaac DonIsaac force-pushed the don/09-19-feat_linter_add_oxc-security_api-keys_ branch from 5201623 to fc95223 Compare September 20, 2024 20:36
@DonIsaac DonIsaac force-pushed the don/09-19-feat_linter_add_oxc-security_api-keys_ branch from fc95223 to 20068ec Compare September 21, 2024 21:13
@DonIsaac DonIsaac requested a review from camc314 September 21, 2024 21:18
Copy link
Contributor

@camc314 camc314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

@DonIsaac DonIsaac added the 0-merge Merge with Graphite Merge Queue label Sep 22, 2024
Copy link

graphite-app bot commented Sep 22, 2024

Merge activity

  • Sep 22, 6:39 PM EDT: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Sep 22, 6:39 PM EDT: DonIsaac added this pull request to the Graphite merge queue.
  • Sep 22, 6:44 PM EDT: DonIsaac merged this pull request with the Graphite merge queue.

## What This PR does
Adds a new `oxc-security/api-key` rule that scans for hard-coded API keys.

It is broken up into "secret rules", where each one is responsible for finding a different kind of key. It is architecturally identical to how lint rules themselves. This PR also includes the first of these rules, for AWS access key IDs.

Logic and rules are based on [keyhunter](https://github.com/Donisaac/keyhunter). I've licensed that repo under GNU GPLv3, but it's my code and I can do what I want with it 😈 (read: I'm fine with it being MIT for oxc).

This PR is a complete feature in its own right, but does not represent the end of this work. See oxc-project/backlog#116 to track overall progress.
@DonIsaac DonIsaac force-pushed the don/09-19-feat_linter_add_oxc-security_api-keys_ branch from 5e0c384 to d24985e Compare September 22, 2024 22:40
@graphite-app graphite-app bot merged commit d24985e into main Sep 22, 2024
26 checks passed
@graphite-app graphite-app bot deleted the don/09-19-feat_linter_add_oxc-security_api-keys_ branch September 22, 2024 22:44
@oxc-bot oxc-bot mentioned this pull request Sep 23, 2024
Boshen added a commit that referenced this pull request Sep 23, 2024
## [0.9.7] - 2024-09-23

### Features

- d24985e linter: Add `oxc-security/api-keys` (#5906) (DonIsaac)
- f9b44c5 linter: Add unicode sets support to `no-useless-escape` rule
(#5974) (camchenry)
- 0f19848 linter: Implement `no-unexpected-multiline` rule (#5911)
(camchenry)
- 16fe383 linter: Implement `no-extend-native` rule (#5867) (Cam
McHenry)

### Bug Fixes

- eed9ac7 linter: Include actual span size in `no-regex-spaces`
diagnostic (#5957) (camchenry)
- 40c89c2 linter: Move `promise/avoid-new` to style category (#5961)
(DonIsaac)

### Performance

- 608d637 linter: Use `aho-corasick` instead of `regex` for string
matching in `jsx-a11y/img-redundant-alt` (#5892) (camchenry)
- 3148d4b linter: Check file path after checking node kind for
`nextjs/no-head-element` (#5868) (Cam McHenry)

### Refactor

- 0a5a4a9 linter: Use parsed patterns for `unicorn/no-hex-escape`
(#5985) (camchenry)
- 2cf2edd linter: Use parsed patterns in `no-empty-character-class` rule
(#5980) (camchenry)
- a9a8e2a linter: Use regex parser in `eslint/no-regex-spaces` (#5952)
(camchenry)
- 05f592b linter: Use parsed patterns in
`unicorn/prefer-string-starts-ends-with` (#5949) (camchenry)
- 3273b64 linter: Use parsed patterns for
`unicorn/prefer-string-replace-all` rule (#5943) (camchenry)
- ba7b01f linter: Add `LinterBuilder` (#5714) (DonIsaac)
- db4f16a semantic: Call `with_trivias` before `build_with_jsdoc`
(#5875) (Boshen)
- 3d13c6d semantic: Impl `IntoIterator` for `&AstNodes` (#5873)
(DonIsaac)

### Testing

- b681c9a linter: Import test cases for `no-empty-character-class`
(#5981) (camchenry)
- 767602b linter: Add regression test for #5227 (#5975) (camchenry)

---------

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0-merge Merge with Graphite Merge Queue A-cli Area - CLI A-linter Area - Linter C-enhancement Category - New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants