{"id":21659582,"url":"https://github.com/psastras/sarif-rs","last_synced_at":"2025-05-15T14:09:21.979Z","repository":{"id":37073814,"uuid":"347270006","full_name":"psastras/sarif-rs","owner":"psastras","description":"A group of Rust projects for interacting with the SARIF format","archived":false,"fork":false,"pushed_at":"2025-05-07T23:12:24.000Z","size":1438,"stargazers_count":104,"open_issues_count":11,"forks_count":25,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-08T00:18:31.052Z","etag":null,"topics":["cli","clippy","rust","sarif","serde"],"latest_commit_sha":null,"homepage":"https://psastras.github.io/sarif-rs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psastras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-13T04:17:47.000Z","updated_at":"2025-05-07T23:01:04.000Z","dependencies_parsed_at":"2023-10-14T19:44:00.787Z","dependency_job_id":"f90a08c3-5aa2-40ea-bd9e-7c4f9915b4a5","html_url":"https://github.com/psastras/sarif-rs","commit_stats":{"total_commits":395,"total_committers":11,"mean_commits":35.90909090909091,"dds":"0.33924050632911396","last_synced_commit":"bfed34ab5b4e538f4006249ec5db8ecc12affdb0"},"previous_names":[],"tags_count":119,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psastras%2Fsarif-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psastras%2Fsarif-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psastras%2Fsarif-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psastras%2Fsarif-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psastras","download_url":"https://codeload.github.com/psastras/sarif-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355332,"owners_count":22057354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","clippy","rust","sarif","serde"],"created_at":"2024-11-25T09:31:16.355Z","updated_at":"2025-05-15T14:09:16.965Z","avatar_url":"https://github.com/psastras.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"[![Workflow Status](https://github.com/psastras/sarif-rs/workflows/main/badge.svg)](https://github.com/psastras/sarif-rs/actions?query=workflow%3A%22main%22)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/psastras/sarif-rs/badge)](https://scorecard.dev/viewer/?uri=github.com/psastras/sarif-rs)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9282/badge)](https://www.bestpractices.dev/projects/9282)\n\n# sarif-rs\n\nA group of Rust projects for interacting with the\n[SARIF](https://sarifweb.azurewebsites.net/) format.\n\n## Example\n\nParse `cargo clippy` output, convert to SARIF (`clippy-sarif`), then pretty\nprint the SARIF to terminal (`sarif-fmt`).\n\n```shell\n$ cargo clippy --message-format=json | clippy-sarif | sarif-fmt\n$ warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`\n    ┌─ sarif-fmt/src/bin.rs:423:13\n    │\n423 │ ╭             the_rule\n424 │ │               .full_description\n425 │ │               .as_ref()\n426 │ │               .and_then(|mfms| Some(mfms.text.clone()))\n    │ ╰───────────────────────────────────────────────────────^\n    │\n    = `#[warn(clippy::bind_instead_of_map)]` on by default\n      for further information visit https://rust-lang.github.io/rust-clippy/master#bind_instead_of_map\n```\n\n## Install\n\nEach CLI may be installed via `cargo`, [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) or directly downloaded from the\ncorresponding Github release.\n\n### Cargo\n\n```shell\ncargo install \u003ccli_name\u003e # ex. cargo install sarif-fmt\n```\n\n### Cargo-binstall\n\n```shell\ncargo binstall \u003ccli_name\u003e # ex. cargo binstall sarif-fmt\n```\n\n### Github Releases\n\nThe latest version is\n[continuously published and tagged](https://github.com/psastras/sarif-rs/releases).\n\nUsing `curl`,\n\n```shell\n# make sure to adjust the target and version (you may also want to pin to a specific version)\ncurl -sSL https://github.com/psastras/sarif-rs/releases/download/shellcheck-sarif-v0.7.0/shellcheck-sarif-x86_64-unknown-linux-gnu -o shellcheck-sarif\n```\n\n### Fedora Linux\n\n```shell\nsudo dnf install \u003ccli_name\u003e # ex. cargo binstall sarif-fmt\n```\n\n### Nix\n\nThrough the `nix` cli,\n\n```shell\nnix --accept-flake-config profile install github:psastras/sarif-rs\n```\n\nOr [from FlakeHub](https://flakehub.com/flake/psastras/sarif-rs).\n\n## Documentation\n\nSee each subproject for more detailed information:\n\n- `clang-tidy-sarif`: CLI tool to convert `clang-tidy` diagnostics into SARIF.\n  See the [Rust documentation](https://docs.rs/clang_tidy_sarif/).\n- `clippy-sarif`: CLI tool to convert `clippy` diagnostics into SARIF. See the\n  [Rust documentation](https://docs.rs/clippy_sarif/).\n- `hadolint-sarif`: CLI tool to convert `hadolint` diagnostics into SARIF. See\n  the [Rust documentation](https://docs.rs/hadolint_sarif/).\n- `shellcheck-sarif`: CLI tool to convert `shellcheck` diagnostics into SARIF.\n  See the [Rust documentation](https://docs.rs/shellcheck_sarif/).\n- `sarif-fmt`: CLI tool to pretty print SARIF diagnostics. See the\n  [Rust documentation](https://docs.rs/sarif_fmt/).\n- `serde-sarif`: Typesafe SARIF structures for serializing and deserializing\n  SARIF information using [serde](https://serde.rs/). See the\n  [Rust documentation](https://docs.rs/serde_sarif/).\n\n## Development\n\nBefore you begin, ensure the following programs are available on your machine:\n\n- [`nix`](https://nixos.org/download.html#nix-quick-install)\n\n### Using Cargo\n\nEnter the development shell provisioned by `nix` and build / test the project:\n\n```shell\nnix develop\ncargo build\ncargo test\n```\n\nFor more information on specific configurations, refer to the\n[`cargo` documentation](https://doc.rust-lang.org/cargo).\n\n### Using Nix\n\nEnter the development shell provisioned by `nix` and build / test the project:\n\n```shell\n# build all crates\nnix build\n\n# optionally, you may build a single crate\nnix build \".#sarif-fmt\"\n```\n\n### Releasing\n\nTo release a new version (publish to crates.io), prefix the head commit with `release:` and update the relevant rust crate versions. Once merged into main the pipeline should pick up the change and publish a new version.\n\nLicense: MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsastras%2Fsarif-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsastras%2Fsarif-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsastras%2Fsarif-rs/lists"}