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

Add function to load known MetaMask repos #22

Merged
merged 8 commits into from
Nov 6, 2023

Conversation

mcmire
Copy link
Collaborator

@mcmire mcmire commented Oct 26, 2023

If a user passes a bare identifier on the command line, like this:

yarn dlx @metamask/module-lint utils

then we assume that they want to lint the MetaMask/utils repository.
However we have to double-check that the repo they want to lint actually
exists. They shouldn't be able to do this, for instance:

yarn dlx @metamask/module-lint asdlsdfl

The way we do this is by pulling the list of repositories that sit under
the MetaMask GitHub organization. We exclude forks as well as archived
repos. This list is cached for an hour so that future runs of the tool
do not cause the rate limit for the GitHub API to be exceeded.


Related to #5.


See here for context on how this is eventually used:

One of the things that this tool will do is to hit the GitHub API and
request all of the repositories under the MetaMask organization. We
don't want to do this every time the tool is run, though, or else we
might get rate limited. To prevent this, we can cache the response data
from the API in a file.

This `fetchOrPopulateFileCache` function being introduced here (which we
will use in a later commit) makes that possible.
When linting a project, we need to constantly read the files within
either the module template or the project. We want this tool to run as
fast as possible, and to do this, we can cache the metadata and content
of each file that we read so that we don't have to do it again. This
class assists with that.
@socket-security
Copy link

socket-security bot commented Oct 26, 2023

New dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
jest-mock-extended 3.0.5 None +1 144 kB marchaos

@socket-security
Copy link

socket-security bot commented Oct 26, 2023

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

If a user passes a bare identifier on the command line, like this:

```
yarn dlx @metamask/module-lint utils
```

then we assume that they want to lint the `MetaMask/utils` repository.
However we have to double-check that the repo they want to lint actually
exists. They shouldn't be able to do this, for instance:

```
yarn dlx @metamask/module-lint asdlsdfl
```

The way we do this is by pulling the list of repositories that sit under
the MetaMask GitHub organization. We exclude forks as well as archived
repos. This list is cached for an hour so that future runs of the tool
do not cause the rate limit for the GitHub API to be exceeded.
@mcmire mcmire force-pushed the add-ensure-metamask-repositories-loaded branch from 99dbf6d to a6166fe Compare October 31, 2023 21:04
@mcmire mcmire marked this pull request as ready for review October 31, 2023 21:06
@mcmire mcmire requested a review from a team as a code owner October 31, 2023 21:06
Copy link
Member

@mikesposito mikesposito left a comment

Choose a reason for hiding this comment

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

LGTM!

@mcmire mcmire merged commit d4975fb into main Nov 6, 2023
21 checks passed
@mcmire mcmire deleted the add-ensure-metamask-repositories-loaded branch November 6, 2023 23:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants