Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/GitHubSecurityLab/gh-mrva
Run CodeQL queries at scale using Multi-Repository Variant Analysis (MRVA)
https://github.com/GitHubSecurityLab/gh-mrva
gh-extension
Last synced: 3 months ago
JSON representation
Run CodeQL queries at scale using Multi-Repository Variant Analysis (MRVA)
- Host: GitHub
- URL: https://github.com/GitHubSecurityLab/gh-mrva
- Owner: GitHubSecurityLab
- License: mit
- Created: 2023-03-28T11:22:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-17T19:55:02.000Z (7 months ago)
- Last Synced: 2024-04-18T17:15:03.345Z (7 months ago)
- Topics: gh-extension
- Language: Go
- Homepage:
- Size: 11.3 MB
- Stars: 39
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gh-mrva
> This is an unofficial tool and is not officially supported by GitHub.
## Configuration
A configuration file will be created in `~/.config/gh-mrva/config.yml`. The following options are supported:
- `codeql_path`: Path to CodeQL distribution (checkout of [codeql repo](https://github.com/github/codeql))
- `controller`: NWO of the MRVA controller to use
- `list_file`: Path to the JSON file containing the target repos## Usage
### Submit a new query
```bash
gh mrva submit [--codeql-path] [--controller ] --language --session [--list-file ] --list [--query | --query-suite ]
```Note: `codeql-dist`, `controller` and `list-file` are only optionals if defined in the configuration file
### Download the results
```bash
gh mrva download --session --output-dir [--download-dbs] [--nwo ]
```### List sessions
```bash
gh mrva list [--json]
```### Check scan status
```bash
gh mrva status --session [--json]
```## Contributing
`gh-mrva` is a work in progress. If you have ideas for new fixes or improvements, please open an issue or pull request.
If possible, tests should be added for any new fixes. We favour testing with real file systems or processes where possible.
## Releasing
Releasing is currently done via tags. To release a new version, create a new tag and push it to the remote. The release workflow will automatically build and publish the new version.
e.g.
```sh
# Determine the latest tag
git tag -l | sort -V | tail -n 1# Create a new tag
git tag -a v0.0.2 -m "Release v0.0.2"# Push the tag to the remote
git push origin --tags
```