#security #github #ghas

ghastoolkit

GitHub Advanced Security Toolkit in Rust

14 unstable releases (6 breaking)

Uses new Rust 2024

new 0.6.0 Mar 27, 2025
0.5.1 Aug 2, 2024
0.4.3 Jun 27, 2024
0.3.1 Jun 13, 2024
0.0.0 Feb 27, 2024

#790 in Development tools


Used in ghastoolkit-cli

MIT license

130KB
3K SLoC

GHASToolkit in Rust

GitHub GitHub Actions GitHub Issues GitHub Stars Crates.io Version Crates.io Downloads (recent) Licence

Overview

This is the GitHub Advanced Security (GHAS) Toolkit in Rust. This toolkit is designed to help developers and security researchers to interact with the GitHub Advanced Security API.

✨ Features

Usage

To use the library in your project, add it to your project using the following command:

cargo add ghastoolkit

Install CLI

You can install the CLI many different ways but the easiest way is the following:

cargo install ghastoolkit-cli

From GitHub

cargo install --git https://github.com/GeekMasher/ghastoolkit-rs

Maintainers / Contributors

Support

Please create GitHub Issues if there are bugs or feature requests.

This project uses Sematic Versioning (v2) and with major releases, breaking changes will occur.

License

This project is licensed under the terms of the MIT open source license. Please refer to MIT for the full terms.


lib.rs:

GitHub Advanced Security (GHAS) Toolkit is a library for interacting with various GitHub's API and features. The main goal of this library is to provide a simple and easy to use interface with these features.

Features

There are a few features that are currently supported by this library:

  • CodeQL
    • CodeQL CLI
    • CodeQL Database(s)
  • GitHub Advanced Security APIs
    • Code Scanning
    • Secret Scanning

Usage

use ghastoolkit::{GitHub, Repository};

#[tokio::main]
async fn main() {
    // Initialize GitHub using default environment variables or github.com
    let github = GitHub::default();
    println!("GitHub :: {}", github);

    let repository = Repository::parse("geekmasher/ghastoolkit-rs@main")
        .expect("Failed to create Repository");
    println!("Repository :: {}", repository);
}

Dependencies

~23–36MB
~629K SLoC