{"id":31642219,"url":"https://github.com/arghena/insight","last_synced_at":"2026-04-02T13:14:45.276Z","repository":{"id":308324557,"uuid":"1032335886","full_name":"arghena/insight","owner":"arghena","description":"GitHub Action for checking pull requests","archived":false,"fork":false,"pushed_at":"2026-02-03T07:30:54.000Z","size":1477,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"canary","last_synced_at":"2026-02-03T18:20:41.765Z","etag":null,"topics":["actions","ci","code-quality","hacktoberfest","linter"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/arghena.png","metadata":{"files":{"readme":"README.md","changelog":"changelogithub.config.json","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-05T06:52:53.000Z","updated_at":"2026-02-03T04:34:47.000Z","dependencies_parsed_at":"2025-08-27T07:20:58.495Z","dependency_job_id":"cd513de8-c2c8-4a96-8108-0d8f62febb4a","html_url":"https://github.com/arghena/insight","commit_stats":null,"previous_names":["arghena/insight"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/arghena/insight","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arghena%2Finsight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arghena%2Finsight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arghena%2Finsight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arghena%2Finsight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arghena","download_url":"https://codeload.github.com/arghena/insight/tar.gz/refs/heads/canary","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arghena%2Finsight/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29327098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T03:52:29.695Z","status":"ssl_error","status_checked_at":"2026-02-11T03:52:23.094Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["actions","ci","code-quality","hacktoberfest","linter"],"created_at":"2025-10-07T03:57:15.029Z","updated_at":"2026-04-02T13:14:45.269Z","avatar_url":"https://github.com/arghena.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003c!--\n\nNOTE: This file will be bundled into the final product (`*.tar.gz`) when it is released,\nso URLs should be used consistently within the file to point to project files, rather than local paths.\nThis is because users won't have access to those files locally when browsing the file.\n\n--\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eInsight\u003c/h1\u003e\n  \u003cp\u003eA GitHub Action for checking pull requests.\u003c/p\u003e\n\n\u003ca href=\"https://github.com/arghena/insight/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/arghena/insight/ci.yml?branch=canary\u0026style=for-the-badge\u0026logo=github\u0026label=ci\u0026labelColor=1a1b26\" alt=\"CI\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/arghena/insight/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/arghena/insight?include_prereleases\u0026style=for-the-badge\u0026logo=github\u0026label=release\u0026labelColor=1a1b26\" alt=\"Release\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/arghena/insight/blob/canary/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/arghena/insight?style=for-the-badge\u0026logo=opensourceinitiative\u0026label=license\u0026labelColor=1a1b26\" alt=\"License\" /\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c!-- markdownlint-enable MD033 --\u003e\n\n## Features\n\n- **Blazing Fast:** Runs formatters and linters concurrently to speed up your CI workflows.\n- **Highly Customizable:** Use a single `insight.toml` file to define exactly what your project needs, including tool versions and CLI arguments.\n- **Precise Targeting:** Supports [glob](\u003chttps://en.wikipedia.org/wiki/Glob_(programming)\u003e) patterns to match exactly the files you want to check.\n- **Rich Job Summaries:** Automatically generates comprehensive GitHub Actions job summaries complete with error tables and collapsible logs.\n- **GitHub Native:** Seamlessly validates PR titles via [commitlint](https://commitlint.js.org) and supports [`on.schedule`](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#onschedule) events.\n- **Unopinionated:** Ships with minimal defaults, keeping opinionated behavior to an absolute minimum so you remain in control.\n\n## Usage\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e - If you set `check-pull-request-title` to `true`, then Insight will only check the pull request title.\n\u003e - Insight only checks `added` and `modified` files.\n\n```yaml\njobs:\n  insight:\n    name: Insight\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        # If `check-pull-request-title` is set to `true`,\n        # it's recommended to remove `actions/checkout`.\n        uses: actions/checkout@v6\n      - name: Run Insight\n        uses: arghena/insight@v0.1.0-canary.52\n        with:\n          # The path to the Insight config file.\n          # Default: '.github/insight.toml'\n          config-path: ''\n          # Use `commitlint` to check the pull request title.\n          # Default: 'false'\n          check-pull-request-title: ''\n          # The title of pull request event.\n          # Default: ${{ github.event.pull_request.title }}\n          pull-request-title: ''\n          # The name of the event that triggered the workflow run.\n          # Default: ${{ github.event_name }}\n          event-name: ''\n          # Personal access token (PAT) used to fetch the repository.\n          # Default: ${{ github.token }}\n          token: ''\n          # Repository name with owner.\n          # Default: ${{ github.repository }}\n          repository: ''\n          # The number of the pull request to check.\n          # Default: ${{ github.event.pull_request.number }}\n          pull-request-number: ''\n```\n\n## Configure Insight\n\n\u003e [!NOTE]\n\u003e You can refer to our [examples](https://github.com/arghena/insight/tree/canary/examples).\n\n```toml\n[match]\n# Match dotfiles.\n# Default: false\ndot = true\n\n[schedule]\n# Linters to run on `on.schedule` events.\n# Default: []\nlinters = [\"cargo-deny\"]\n\n[formatters]\n# Glob patterns for files that trigger formatters.\n# Default: []\nprettier = [\"**/*.ts\"]\ncargo-fmt = [\"**/*.rs\"]\n\n[linters]\n# Glob patterns for files that trigger linters.\n# Default: []\ncheck-dist = [\"src/**/*.ts\", \"**/package.json\", \"**/pnpm-lock.yaml\"]\ncargo-deny = [\"**/Cargo.toml\", \"**/Cargo.lock\"]\ntypos = [\"**/*\", \"!dist/**\"]\n\n[args.formatters]\n# Arguments passed to formatters.\n# Default: []\ncargo-fmt = [\"--all\"]\n\n[args.linters]\n# Arguments passed to linters.\n# Default: []\ncheck-dist = [\"prepare\"]\n\n[versions]\n# Lock formatter/linter versions.\n# Default: \"latest\"\nprettier = \"3.6.2\"\n```\n\n## Available Formatters\n\n| Tool                                             | Formatter name | Accepts File Paths |\n| ------------------------------------------------ | -------------- | :----------------: |\n| [rustfmt](https://github.com/rust-lang/rustfmt)  | `cargo-fmt`    |                    |\n| [prettier](https://github.com/prettier/prettier) | `prettier`     |         ✅         |\n| [shfmt](https://github.com/mvdan/sh)             | `shfmt`        |         ✅         |\n| [tombi](https://github.com/tombi-toml/tombi)     | `tombi`        |         ✅         |\n\n## Available Linters\n\n| Tool                                                                                     | Linter name         | Accepts File Paths | Supports scheduling |\n| ---------------------------------------------------------------------------------------- | ------------------- | :----------------: | :-----------------: |\n| [actionlint](https://github.com/rhysd/actionlint)                                        | `actionlint`        |         ✅         |                     |\n| [alex](https://github.com/get-alex/alex)                                                 | `alex`              |         ✅         |                     |\n| [ast-grep](https://github.com/ast-grep/ast-grep)                                         | `ast-grep`          |         ✅         |                     |\n| [clippy](https://github.com/rust-lang/rust-clippy)                                       | `cargo-clippy`      |                    |                     |\n| [cargo-deny](https://github.com/EmbarkStudios/cargo-deny)                                | `cargo-deny`        |                    |         ✅          |\n| [cargo-msrv](https://github.com/foresterre/cargo-msrv)                                   | `cargo-msrv`        |                    |                     |\n| [check-dist](https://github.com/arghena/insight/blob/canary/src/linters/check-dist.ts)   | `check-dist`        |                    |                     |\n| [eslint](https://github.com/eslint/eslint)                                               | `eslint`            |         ✅         |                     |\n| [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2)                     | `markdownlint-cli2` |         ✅         |                     |\n| [node-audit](https://github.com/arghena/insight/blob/canary/src/linters/node-audit.ts)   | `node-audit`        |                    |         ✅          |\n| [node-dedupe](https://github.com/arghena/insight/blob/canary/src/linters/node-dedupe.ts) | `node-dedupe`       |                    |                     |\n| [shellcheck](https://github.com/koalaman/shellcheck)                                     | `shellcheck`        |         ✅         |                     |\n| [tombi](https://github.com/tombi-toml/tombi)                                             | `tombi`             |         ✅         |                     |\n| [trivy](https://github.com/aquasecurity/trivy)                                           | `trivy`             |                    |                     |\n| [tsc](https://github.com/microsoft/TypeScript)                                           | `tsc`               |                    |                     |\n| [typos](https://github.com/crate-ci/typos)                                               | `typos`             |         ✅         |                     |\n| [vale](https://github.com/errata-ai/vale)                                                | `vale`              |         ✅         |                     |\n| [yamllint](https://github.com/adrienverge/yamllint)                                      | `yamllint`          |         ✅         |                     |\n\n## Contributing\n\nPlease refer to our [CONTRIBUTING.md](https://github.com/arghena/insight/blob/canary/.github/CONTRIBUTING.md).\n\n## Security\n\n\u003e [!NOTE]\n\u003e If you believe you have found a security vulnerability in Insight, we encourage you to **responsibly disclose this and NOT open a public issue**.\n\nPlease refer to our [SECURITY.md](https://github.com/arghena/insight/blob/canary/.github/SECURITY.md).\n\n## Releases\n\nThe version naming of Insight follows [Semantic Versioning 2.0.0](https://semver.org/#semantic-versioning-200).\n\n### Long-Term Support\n\n\u003e [!NOTE]\n\u003e When Insight releases a new major version, the previous stable version will be designated as an LTS version.\n\nThe LTS version of Insight provides security updates and bug fixes for six months.\n\n### Release Table\n\n| Insight | Node.js | Codename | Released at | End of Life |\n| ------- | ------- | -------- | ----------- | ----------- |\n| v0.1.0  | v24     | Galileo  | -           | -           |\n\n## License\n\nInsight is distributed under the [MIT License](https://github.com/arghena/insight/blob/canary/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farghena%2Finsight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farghena%2Finsight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farghena%2Finsight/lists"}