{"id":44713628,"url":"https://github.com/dbelyaev/action-checkstyle","last_synced_at":"2026-03-03T10:02:56.935Z","repository":{"id":39989114,"uuid":"279302681","full_name":"dbelyaev/action-checkstyle","owner":"dbelyaev","description":"Automatically enforce Java code standards in PRs with inline feedback. Powered by Checkstyle + reviewdog for seamless GitHub integration.","archived":false,"fork":false,"pushed_at":"2026-03-02T13:51:39.000Z","size":665,"stargazers_count":32,"open_issues_count":5,"forks_count":19,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-02T15:11:00.213Z","etag":null,"topics":["checkstyle","code-quality","code-review","github-action","java","pr","pull-request","reviewdog"],"latest_commit_sha":null,"homepage":"https://github.com/dbelyaev/action-checkstyle/","language":"Shell","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/dbelyaev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-07-13T12:55:39.000Z","updated_at":"2026-03-02T10:00:41.000Z","dependencies_parsed_at":"2024-06-23T03:42:16.418Z","dependency_job_id":"e576be11-9554-44e1-9df7-d7d08bf965fa","html_url":"https://github.com/dbelyaev/action-checkstyle","commit_stats":{"total_commits":21,"total_committers":4,"mean_commits":5.25,"dds":0.4285714285714286,"last_synced_commit":"884620eaa7a1bde42f4d397ed53b0f6bb9427681"},"previous_names":[],"tags_count":150,"template":false,"template_full_name":"reviewdog/action-template","purl":"pkg:github/dbelyaev/action-checkstyle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbelyaev%2Faction-checkstyle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbelyaev%2Faction-checkstyle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbelyaev%2Faction-checkstyle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbelyaev%2Faction-checkstyle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbelyaev","download_url":"https://codeload.github.com/dbelyaev/action-checkstyle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbelyaev%2Faction-checkstyle/sbom","scorecard":{"id":328856,"data":{"date":"2025-08-12T19:02:08Z","repo":{"name":"github.com/dbelyaev/action-checkstyle","commit":"93affe406b9baf8e9356f75bdec69150631e86d0"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":8.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"26 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: .github/renovate.json:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/depup.yml:21","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/depup.yml:57","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pr-labeler.yml:43","Info: jobLevel 'contents' permission set to 'read': .github/workflows/release.yml:71","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:24","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/release.yml:25","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:48","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:75","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:97","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:119","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecards.yml:31","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecards.yml:32","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/test.yml:20","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/test.yml:41","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/depup.yml:12","Info: topLevel 'contents' permission set to 'read': .github/workflows/dockerimage.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/pr-labeler.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/release.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/reviewdog.yml:12","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:19","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:11"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: downloadThenRun not pinned by hash: Dockerfile:12-14","Warn: downloadThenRun not pinned by hash: entrypoint.sh:38","Warn: downloadThenRun not pinned by hash: entrypoint.sh:41","Info:  23 out of  23 GitHub-owned GitHubAction dependencies pinned","Info:  38 out of  38 third-party GitHubAction dependencies pinned","Info:   0 out of   3 downloadThenRun dependencies pinned","Info:   1 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":8,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Info: 'stale review dismissal' is required to merge on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Warn: codeowners review is required - but no codeowners file found in repo","Info: 'last push approval' is required to merge on branch 'master'","Info: 'up-to-date branches' is required to merge on branch 'master'","Info: status check found to merge onto on branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Contributors","score":10,"reason":"project has 3 contributing companies or organizations -- score normalized to 10","details":["Info: found contributions from: bouvet @equinor, reallyslickscreensavers, stepsecurity"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"30 out of 30 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}}]},"last_synced_at":"2025-08-18T03:07:07.797Z","repository_id":39989114,"created_at":"2025-08-18T03:07:07.798Z","updated_at":"2025-08-18T03:07:07.798Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30040275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T06:58:30.252Z","status":"ssl_error","status_checked_at":"2026-03-03T06:58:15.329Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["checkstyle","code-quality","code-review","github-action","java","pr","pull-request","reviewdog"],"created_at":"2026-02-15T13:03:12.461Z","updated_at":"2026-03-03T10:02:56.873Z","avatar_url":"https://github.com/dbelyaev.png","language":"Shell","readme":"# Java Checkstyle Reviewer (GitHub Action)\n\n\u003c!-- Release and Build Status --\u003e\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/dbelyaev/action-checkstyle?logo=github\u0026sort=semver)](https://github.com/dbelyaev/action-checkstyle/releases)\n[![reviewdog](https://github.com/dbelyaev/action-checkstyle/workflows/reviewdog/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions?query=workflow%3Areviewdog)\n[![release](https://github.com/dbelyaev/action-checkstyle/workflows/release/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions?query=workflow%3Arelease)\n[![depup](https://github.com/dbelyaev/action-checkstyle/workflows/depup/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions?query=workflow%3Adepup)\n\u003c!-- Test Status --\u003e\n[![Test - Reviewers](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-reviewers.yml/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-reviewers.yml)\n[![Test - Versions](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-versions.yml/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-versions.yml)\n[![Test - Other](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-other.yml/badge.svg)](https://github.com/dbelyaev/action-checkstyle/actions/workflows/test-other.yml)\n\u003c!-- Project Quality and Community --\u003e\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/dbelyaev/action-checkstyle/badge)](https://securityscorecards.dev/viewer/?uri=github.com/dbelyaev/action-checkstyle)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fdbelyaev%2Faction-checkstyle.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fdbelyaev%2Faction-checkstyle?ref=badge_shield)\n[![action-bumpr supported](https://img.shields.io/badge/bumpr-supported-ff69b4?logo=github\u0026link=https://github.com/haya14busa/action-bumpr)](https://github.com/haya14busa/action-bumpr)\n\nEnforce Java code quality standards in your pull requests with automated [Checkstyle](https://github.com/checkstyle/checkstyle) analysis.  \nPowered by [reviewdog](https://github.com/reviewdog/reviewdog), this action reports violations directly in your PR reviews, making it easy to maintain consistent code style across your team.\n\n## Features\n\n- **Zero Configuration** - Works out of the box with Google or Sun coding conventions\n- **Flexible Reporting** - Choose between PR comments, checks, or reviews\n- **Version Control** - Pin to any Checkstyle version for consistency\n- **Custom Rules** - Use your own Checkstyle configuration files\n- **Smart Filtering** - Only review changed lines or entire files\n- **GitHub Integration** - Native support for GitHub status checks and annotations\n\n## Quick Start\n\nAdd this workflow to your repository at `.github/workflows/checkstyle.yml`:\n\n```yaml\nname: checkstyle\non: [pull_request]\njobs:\n  checkstyle:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: dbelyaev/action-checkstyle@v3\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n```\n\nThat's it! The action will now analyze Java files in every pull request using Google's coding conventions.\n\n## Table of Contents\n\n- [Features](#features)\n- [Quick Start](#quick-start)\n- [Example](#example)\n- [Usage](#usage)\n  - [Security Note: Pin by Tag or by Hash?](#security-note-pin-by-tag-or-by-hash)\n- [Input Parameters](#input-parameters)\n  - [Checkstyle Parameters](#checkstyle-parameters)\n    - [`checkstyle_config`](#checkstyle_config)\n    - [`checkstyle_version`](#checkstyle_version)\n    - [`workdir`](#workdir)\n    - [`properties_file`](#properties_file)\n  - [Reviewdog Parameters](#reviewdog-parameters)\n    - [`github_token`](#github_token)\n    - [`reporter`](#reporter)\n    - [`level`](#level)\n    - [`filter_mode`](#filter_mode)\n    - [`fail_level`](#fail_level)\n    - [`reviewdog_flags`](#reviewdog_flags)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Example\n\nCheckstyle violations appear as inline comments on your pull request, making it easy to identify and fix issues:\n\n![PR comment with violation](https://user-images.githubusercontent.com/6915328/149333188-4600a75d-5670-4013-9395-d5852e3c7839.png)\n\n*[View complete example PR](https://github.com/dbelyaev/action-checkstyle-tester/pull/9) with Checkstyle violations and comments*\n\n## Usage\n\n```yaml\nname: reviewdog\non: [pull_request]\njobs:\n  checkstyle:\n    name: runner / checkstyle\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - uses: dbelyaev/action-checkstyle@v3\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          reporter: github-pr-review\n          level: warning\n```\n\n### Security Note: Pin by Tag or by Hash?\n\nWhen using GitHub Actions, you can pin to a specific version in two ways:\n\n#### Pinning by Tag\n\n```yaml\n- uses: dbelyaev/action-checkstyle@v3 # pin to the latest major tag\n```\n\n```yaml\n- uses: dbelyaev/action-checkstyle@v3.4.1 # pin to specific version tag\n```\n\n- **Pros**: Convenient, automatically receives updates\n- **Cons**: Less secure, as tags can be modified to point to different commits\n\n#### Pinning by Commit SHA\n\n```yaml\n- uses: dbelyaev/action-checkstyle@0babcc5b0e55e5a8ab6f8a17134f2d613e2bcdda # v3.0.0\n```\n\n- **Pros**: Maximum security, guarantees the exact same code runs every time\n- **Cons**: Requires manual updates when new versions are released\n\n#### Best Practice\n\nGitHub [officially recommends](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions) pinning actions to a full length commit SHA for production workflows and 3rd party actions to ensure security. For non-critical workflows, major version tags provide a reasonable balance between convenience and safety.\n\nFor automated SHA updates, consider using tools like [Dependabot (owned by GitHub)](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot) or [Renovate (owned by mend.io)](https://github.com/apps/renovate) to keep your actions current while maintaining security.\n\n## Input Parameters\n\n### Checkstyle Parameters\n\n- ### `checkstyle_config`  \n\n  Specifies which Checkstyle ruleset to apply during analysis.  \n  \n  Two built-in configurations are available:\n  - `google_checks.xml` - [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html) rules\n  - `sun_checks.xml` - [Sun Code Conventions](https://www.oracle.com/java/technologies/javase/codeconventions-contents.html) rules\n\n  You can also supply a custom Checkstyle configuration file from your repository. Provide the path relative to the repository root. See the [Checkstyle configuration documentation](https://checkstyle.org/config.html) to learn how to create custom rules.\n\n  \u003e **Note:** If the specified configuration file is not found or contains invalid XML, the workflow will fail with an error message.\n\n  **Default:** `google_checks.xml`\n\n  **Example:**\n\n  ```yaml\n  name: reviewdog\n  on: [pull_request]\n  jobs:\n    checkstyle:\n      name: runner / checkstyle\n      runs-on: ubuntu-latest\n      steps:\n        - uses: actions/checkout@v6\n        - uses: dbelyaev/action-checkstyle@v3\n          with:\n            github_token: ${{ secrets.GITHUB_TOKEN }}\n            reporter: github-pr-review\n            checkstyle_config: sun_checks.xml\n  ```\n\n  *[Example PR](https://github.com/dbelyaev/action-checkstyle-tester/pull/10) demonstrating Sun code conventions configuration*\n\n- ### `checkstyle_version`\n\n  Specifies which Checkstyle version to use for analysis.  \n\n  Browse available versions on the [Checkstyle releases page](https://github.com/checkstyle/checkstyle/releases/).\n\n  \u003e **Important:** By default, this action automatically uses the latest Checkstyle version. New Checkstyle releases may introduce:\n  \u003e - New rules that flag previously accepted code\n  \u003e - Modified rule behavior causing different violation counts\n  \u003e - Deprecated configuration options\n  \u003e\n  \u003e **Recommended:** Pin to a specific version in production workflows to ensure consistent and reproducible builds. Update the version intentionally when you're ready to address any new violations.\n\n  **Default:** Latest available version\n\n  **Example:**\n\n  ```yaml\n  name: reviewdog\n  on: [pull_request]\n  jobs:\n    checkstyle:\n      name: runner / checkstyle\n      runs-on: ubuntu-latest\n      steps:\n        - uses: actions/checkout@v6\n        - uses: dbelyaev/action-checkstyle@v3\n          with:\n            github_token: ${{ secrets.GITHUB_TOKEN }}\n            reporter: github-pr-review\n            checkstyle_version: \"12.3.0\" # use double quotes for version numbers\n  ```\n\n- ### `workdir`\n\n  Working directory for Checkstyle analysis, relative to the repository root.\n\n  **Default:** `'.'` (root)\n\n- ### `properties_file`\n  \n  Path to a properties file (relative to repository root) for defining variables used in your Checkstyle configuration.  \n  \n  Use this to avoid repetition and centralize configuration values. The properties file should use standard [Java properties format](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html) (`key=value`).\n\n  \u003e **Note:** If the specified file is not found, the workflow will fail. Referenced properties in the config file must exist in the properties file, or Checkstyle will report an error.\n\n  **Default:** `''` (empty)\n\n  **Example:**\n\n  ```yaml\n  name: reviewdog\n  on: [pull_request]\n  jobs:\n    checkstyle:\n      name: runner / checkstyle\n      runs-on: ubuntu-latest\n      steps:\n        - uses: actions/checkout@v6\n        - uses: dbelyaev/action-checkstyle@v3\n          with:\n            github_token: ${{ secrets.GITHUB_TOKEN }}\n            reporter: github-pr-review\n            checkstyle_config: ./properties_file/test_checks.xml\n            properties_file: ./properties_file/additional.properties\n  ```\n\n  *[Example PR](https://github.com/dbelyaev/action-checkstyle-tester/pull/11) demonstrating properties file usage with custom configuration*\n\n### Reviewdog Parameters\n\n- ### `github_token`\n\n  GitHub token for API authentication, required for reviewdog to post comments and annotations.\n\n  Use the automatically provided `secrets.github_token` or `secrets.GITHUB_TOKEN` in your workflow. This token is automatically created by GitHub for each workflow run with appropriate permissions.\n\n  \u003e **Note:** For the `github-pr-review` and `github-pr-check` reporters to work properly, ensure your workflow has `pull-requests: write` permission. This is granted by default in most cases.\n\n  **Required:** Yes\n\n  **Example:**\n\n  ```yaml\n  - uses: dbelyaev/action-checkstyle@v3\n    with:\n      github_token: ${{ secrets.GITHUB_TOKEN }}\n  ```\n\n  For more information about GitHub tokens, see the [automatic token authentication documentation](https://docs.github.com/en/actions/security-guides/automatic-token-authentication).\n\n- ### `reporter`\n\n  Determines how reviewdog reports Checkstyle violations in GitHub.  \n\n  **Values:** `github-pr-check`, `github-check`, `github-pr-review`\n\n  See the [reviewdog reporters documentation](https://github.com/reviewdog/reviewdog#reporters) for detailed examples, screenshots, and permission requirements for each reporter type.\n\n  **Default:** `github-pr-check`\n\n- ### `level`\n\n  Sets the severity level for reported violations, affecting GitHub status check results.\n  \n  **Values:** `info`, `warning`, `error`\n  \n  Control GitHub status check behavior:\n\n  | Level     | GitHub Status |\n  | --------- | ------------- |\n  | `info`    | neutral       |\n  | `warning` | neutral       |\n  | `error`   | failure       |\n\n  **Default:** `info`\n\n- ### `filter_mode`\n\n  Filtering mode for the reviewdog command.  \n\n  **Values:** `added`, `diff_context`, `file`, `nofilter`\n\n  See the [reviewdog filter-mode documentation](https://github.com/reviewdog/reviewdog#filter-mode) for detailed explanations of when to use each filtering mode.\n\n  **Default:** `added`\n\n- ### `fail_level`\n\n  Determines when reviewdog exits with a non-zero code, failing the workflow.\n  \n  **Values:** `none`, `any`, `info`, `warning`, `error`\n  \n  By default (`none`), reviewdog exits with code `0` even when violations exist. Set this to fail your workflow when violations at or above the specified severity level are found.\n\n  **Default:** `none`\n\n- ### `reviewdog_flags`\n\n  Additional reviewdog flags.\n\n  **Default:** `\"\"`\n\n## Contributing\n\nContributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details on how to:\n\n- Report bugs and request features\n- Submit pull requests\n- Follow our code of conduct\n\nWe follow the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fdbelyaev%2Faction-checkstyle.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fdbelyaev%2Faction-checkstyle?ref=badge_large)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbelyaev%2Faction-checkstyle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbelyaev%2Faction-checkstyle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbelyaev%2Faction-checkstyle/lists"}