generated from MetaMask/metamask-module-template
-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
New dependencies detected. Learn more about Socket for GitHub ↗︎
|
👍 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
force-pushed
the
add-ensure-metamask-repositories-loaded
branch
from
October 31, 2023 21:04
99dbf6d
to
a6166fe
Compare
mikesposito
approved these changes
Nov 6, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If a user passes a bare identifier on the command line, like this:
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:
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: