Sitelet https://github.com/analysis-tools-dev/static-analysis/pull/1903/files
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
REPO: ${{ github.repository }}
run: |
gh api "repos/$REPO/issues/$PR/comments" \
-f body="README.md was edited directly. Please edit tool entries in \`data/tools/\`, related collections in \`data/collections/\`, or text and structure in \`ci/render/templates/README.md\` instead. Leave the generated README.md out of your pull request." \
-f body="README.md was edited directly. Please edit tool entries in \`data/tools/\`, related collections in \`data/collections/\`, or text and structure in \`ci/crates/render/templates/README.md\` instead. Leave the generated README.md out of your pull request." \
--silent
echo "README.md must not be edited directly." >&2
exit 1
Expand All @@ -56,8 +56,11 @@ jobs:
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: 1.98.0
components: clippy
toolchain: 1.98.1
components: clippy, rustfmt

- name: Check formatting
run: make fmt-check

- name: Run Clippy
run: make clippy
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
if: steps.tools.outputs.found == 'true'
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: 1.98.0
toolchain: 1.98.1

- name: Build trusted checker
if: steps.tools.outputs.found == 'true'
Expand Down Expand Up @@ -114,7 +114,7 @@ jobs:

## [FAIL] Generated README changed

`README.md` is generated and should not be included in tool submissions. Please remove its changes from this PR and submit tool entries under `data/tools/` instead. For changes to the README text or structure, edit `ci/render/templates/README.md` rather than the generated file.
`README.md` is generated and should not be included in tool submissions. Please remove its changes from this PR and submit tool entries under `data/tools/` instead. For changes to the README text or structure, edit `ci/crates/render/templates/README.md` rather than the generated file.

This check will remain failed until the `README.md` changes are removed. README changes alone do not automatically close the PR.
EOF
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/render.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: 1.98.0
toolchain: 1.98.1

- name: Render list
run: make render
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
logcli-linux-amd64
logcli.zip
ci/target/
ci/pr-check/target/
ci/crates/*/target/
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ Your goal is to help the user submit a high-quality pull request that aligns wit
When the user asks you to add a new static analysis tool, please act as a helpful code reviewer:
1. **Verify the criteria:** Check the requirements in `CONTRIBUTING.md`: at least 20 GitHub stars, at least six months of history, and more than one human contributor.
2. **Wait until the tool qualifies:** If any criterion is not met, do not submit a pull request yet. Explain that the bot closes PRs with verified criteria failures and encourage the user to submit once all requirements are met. If a criterion cannot be verified automatically, provide evidence for manual review rather than claiming it passed.
3. **Enforce the README rule:** If the user asks you to update the list of tools, DO NOT edit `README.md`. Explain to the user that the list of tools in `README.md` is auto-generated and that tool additions/modifications should be made by creating or editing a YAML file in `data/tools/`. For changes to the README text or structure, edit `ci/render/templates/README.md`. Do not include generated `README.md` changes in a pull request; CI flags them as a failure.
3. **Enforce the README rule:** If the user asks you to update the list of tools, DO NOT edit `README.md`. Explain to the user that the list of tools in `README.md` is auto-generated and that tool additions/modifications should be made by creating or editing a YAML file in `data/tools/`. For changes to the README text or structure, edit `ci/crates/render/templates/README.md`. Do not include generated `README.md` changes in a pull request; CI flags them as a failure.

Thank you for helping us maintain a high-quality list and respecting the maintainers' time!
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,18 @@ provide evidence of that history. Missing registration data also requires review
manually.** Leave generated `README.md` changes out of your pull request, even
if you run `make render` locally. CI will flag them as a failure in the PR
comment. For changes to the README text or structure, edit
`ci/render/templates/README.md` instead.
`ci/crates/render/templates/README.md` instead.

To add a new tool, please create a file in the `data/tools` directory like
`data/tools/<toolname>.yml`. Feel free to check out a few other YAML files in
that directory to see how it should look like.

- Use a nonblank tool name of at most **50 UTF-8 bytes** (non-ASCII characters
can take more than one byte).
- Make each tool description as precise as possible. Please limit the
description to **500 characters**.
- Add a license. If it's a proprietary tool, use `license: proprietary`.
- Please add as many tags as possible. You can choose from the tags in
- Add at least one tag, and include as many relevant tags as possible. Choose from
`data/tags.yml`. If a tool does not match any existing tag, feel free to add a
new tag but also add it to `data/tags.yml`.
- For AI-related tools, add `ai-generated-code` if the tool analyzes
Expand Down
16 changes: 10 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,35 +1,39 @@
# Static Analysis Tools Repository Makefile

.PHONY: render render-skip-deprecated check clippy fmt test clean help
.PHONY: render render-skip-deprecated check clippy fmt fmt-check test clean help

# Default target shows help
help:
@echo "Available targets:"
@echo " render - Render README.md and JSON API from YAML sources"
@echo " render-skip-deprecated - Render without deprecated tools"
@echo " render-skip-deprecated - Render using cached deprecation data (no GitHub requests)"
@echo " check - Run cargo check"
@echo " clippy - Run clippy lints"
@echo " fmt - Format Rust code"
@echo " fmt-check - Check Rust formatting without changing files"
@echo " test - Run tests"
@echo " clean - Clean build artifacts"
@echo " help - Show this help"

# Main rendering targets
render:
cargo run --manifest-path ci/Cargo.toml -p render -- --tags data/tags.yml --tools data/tools --collections data/collections --md-out README.md --json-out data/api
cargo run --manifest-path ci/Cargo.toml --locked -p render -- --tags data/tags.yml --tools data/tools --collections data/collections --md-out README.md --json-out data/api

render-skip-deprecated:
cargo run --manifest-path ci/Cargo.toml -p render -- --tags data/tags.yml --tools data/tools --collections data/collections --md-out README.md --json-out data/api --skip-deprecated
cargo run --manifest-path ci/Cargo.toml --locked -p render -- --tags data/tags.yml --tools data/tools --collections data/collections --md-out README.md --json-out data/api --skip-deprecated

# Development targets
check:
cargo check --manifest-path ci/Cargo.toml
cargo check --manifest-path ci/Cargo.toml --workspace --all-targets --locked

clippy:
cargo clippy --manifest-path ci/Cargo.toml --workspace --all-targets --all-features --locked -- -D warnings

fmt:
cargo fmt --manifest-path ci/Cargo.toml
cargo fmt --manifest-path ci/Cargo.toml --all

fmt-check:
cargo fmt --manifest-path ci/Cargo.toml --all --check

test:
cargo test --manifest-path ci/Cargo.toml --workspace --all-targets --all-features --locked
Expand Down
Loading
Loading