Skip to content

arghena/insight

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Insight

A GitHub Action for checking pull requests.

CI Release License

Features

  • Blazing Fast: Runs formatters and linters concurrently to speed up your CI workflows.
  • Highly Customizable: Use a single insight.toml file 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.schedule events.
  • Unopinionated: Ships with minimal defaults, keeping opinionated behavior to an absolute minimum so you remain in control.

Usage

Important

  • If you set check-pull-request-title to true, then Insight will only check the pull request title.
  • Insight only checks added and modified files.
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: ''

Configure Insight

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"

Available Formatters

Tool Formatter name Accepts File Paths
rustfmt cargo-fmt
prettier prettier
shfmt shfmt
tombi tombi

Available Linters

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

Contributing

Please refer to our CONTRIBUTING.md.

Security

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.

Releases

The version naming of Insight follows Semantic Versioning 2.0.0.

Long-Term Support

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.

Release Table

Insight Node.js Codename Released at End of Life
v0.1.0 v24 Galileo - -

License

Insight is distributed under the MIT License.

About

GitHub Action for checking pull requests

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors