- Blazing Fast: Runs formatters and linters concurrently to speed up your CI workflows.
- Highly Customizable: Use a single
insight.tomlfile to define exactly what your project needs, including tool versions and CLI arguments. - Precise Targeting: Supports glob patterns to match exactly the files you want to check.
- Rich Job Summaries: Automatically generates comprehensive GitHub Actions job summaries complete with error tables and collapsible logs.
- GitHub Native: Seamlessly validates PR titles via commitlint and supports
on.scheduleevents. - Unopinionated: Ships with minimal defaults, keeping opinionated behavior to an absolute minimum so you remain in control.
Important
- If you set
check-pull-request-titletotrue, then Insight will only check the pull request title. - Insight only checks
addedandmodifiedfiles.
jobs:
insight:
name: Insight
runs-on: ubuntu-latest
steps:
- name: Checkout repository
# If `check-pull-request-title` is set to `true`,
# it's recommended to remove `actions/checkout`.
uses: actions/checkout@v6
- name: Run Insight
uses: arghena/insight@v0.1.0-canary.41
with:
# The path to the Insight config file.
# Default: '.github/insight.toml'
config-path: ''
# Use `commitlint` to check the pull request title.
# Default: 'false'
check-pull-request-title: ''
# The title of pull request event.
# Default: ${{ github.event.pull_request.title }}
pull-request-title: ''
# The name of the event that triggered the workflow run.
# Default: ${{ github.event_name }}
event-name: ''
# Personal access token (PAT) used to fetch the repository.
# Default: ${{ github.token }}
token: ''
# Repository name with owner.
# Default: ${{ github.repository }}
repository: ''
# The number of the pull request to check.
# Default: ${{ github.event.pull_request.number }}
pull-request-number: ''Note
You can refer to our examples.
[match]
# Match dotfiles.
# Default: false
dot = true
[schedule]
# Linters to run on `on.schedule` events.
# Default: []
linters = ["cargo-deny"]
[formatters]
# Glob patterns for files that trigger formatters.
# Default: []
prettier = ["**/*.ts"]
cargo-fmt = ["**/*.rs"]
[linters]
# Glob patterns for files that trigger linters.
# Default: []
check-dist = ["src/**/*.ts", "**/package.json", "**/pnpm-lock.yaml"]
cargo-deny = ["**/Cargo.toml", "**/Cargo.lock"]
typos = ["**/*", "!dist/**"]
[args.formatters]
# Arguments passed to formatters.
# Default: []
cargo-fmt = ["--all"]
[args.linters]
# Arguments passed to linters.
# Default: []
check-dist = ["prepare"]
[versions]
# Lock formatter/linter versions.
# Default: "latest"
prettier = "3.6.2"| Tool | Formatter name | Accepts File Paths |
|---|---|---|
| rustfmt | cargo-fmt |
|
| prettier | prettier |
✅ |
| shfmt | shfmt |
✅ |
| tombi | tombi |
✅ |
| Tool | Linter name | Accepts File Paths | Supports scheduling |
|---|---|---|---|
| actionlint | actionlint |
✅ | |
| alex | alex |
✅ | |
| ast-grep | ast-grep |
✅ | |
| clippy | cargo-clippy |
||
| cargo-deny | cargo-deny |
✅ | |
| cargo-msrv | cargo-msrv |
||
| check-dist | check-dist |
||
| eslint | eslint |
✅ | |
| markdownlint-cli2 | markdownlint-cli2 |
✅ | |
| node-audit | node-audit |
✅ | |
| node-dedupe | node-dedupe |
||
| shellcheck | shellcheck |
✅ | |
| tombi | tombi |
✅ | |
| trivy | trivy |
||
| tsc | tsc |
||
| typos | typos |
✅ | |
| vale | vale |
✅ | |
| yamllint | yamllint |
✅ |
Please refer to our CONTRIBUTING.md.
Note
If you believe you have found a security vulnerability in Insight, we encourage you to responsibly disclose this and NOT open a public issue.
Please refer to our SECURITY.md.
The version naming of Insight follows Semantic Versioning 2.0.0.
Note
When Insight releases a new major version, the previous stable version will be designated as an LTS version.
The LTS version of Insight provides security updates and bug fixes for six months.
| Insight | Node.js | Codename | Released at | End of Life |
|---|---|---|---|---|
| v0.1.0 | v24 | Galileo | - | - |
Insight is distributed under the MIT License.