{"id":19924669,"url":"https://github.com/korandoru/hawkeye","last_synced_at":"2026-01-16T19:40:31.151Z","repository":{"id":65503971,"uuid":"584255967","full_name":"korandoru/hawkeye","owner":"korandoru","description":"Simple license header checker and formatter, in multiple distribution forms.","archived":false,"fork":false,"pushed_at":"2026-01-12T10:47:55.000Z","size":1048,"stargazers_count":176,"open_issues_count":0,"forks_count":20,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-12T17:29:25.208Z","etag":null,"topics":["cli","license","license-checking","native","native-image"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/korandoru.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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},"funding":{"github":"tisonkun"}},"created_at":"2023-01-02T02:30:59.000Z","updated_at":"2026-01-12T10:47:59.000Z","dependencies_parsed_at":"2023-11-22T02:28:58.898Z","dependency_job_id":"4d7930da-4533-487c-901d-b4ff866d5a6c","html_url":"https://github.com/korandoru/hawkeye","commit_stats":{"total_commits":147,"total_committers":3,"mean_commits":49.0,"dds":"0.013605442176870763","last_synced_commit":"509e7e9a41a606fb4d300ee88bade5499c4acf1c"},"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"purl":"pkg:github/korandoru/hawkeye","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korandoru%2Fhawkeye","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korandoru%2Fhawkeye/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korandoru%2Fhawkeye/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korandoru%2Fhawkeye/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/korandoru","download_url":"https://codeload.github.com/korandoru/hawkeye/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korandoru%2Fhawkeye/sbom","scorecard":{"id":567595,"data":{"date":"2025-08-11","repo":{"name":"github.com/korandoru/hawkeye","commit":"cdc68d9c8ace500aefcd8f4dd39b915cd06305dd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Code-Review","score":2,"reason":"Found 8/27 approved changesets -- score normalized to 2","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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":9,"reason":"8 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'packages' permission set to 'write': .github/workflows/docker.yml:27","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/docker.yml:42","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/docker.yml:57","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/docker.yml:74","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/docker.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release.yml:18"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: invalid parameter name: .github/workflows/release.yml:78","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:151: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:168: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:172: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:179: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:197: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:217: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:221: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:228: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:241: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:248: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:281: update your workflow using https://app.stepsecurity.io/secureworkflow/korandoru/hawkeye/release.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:15","Warn: containerImage not pinned by hash: Dockerfile:23: pin your Docker image by updating public.ecr.aws/docker/library/alpine:3.20.0 to public.ecr.aws/docker/library/alpine:3.20.0@sha256:77726ef6b57ddf65bb551896826ec38bc3e53f75cdde31354fbffb4f25238ebd","Warn: downloadThenRun not pinned by hash: .github/workflows/release.yml:67","Info:   0 out of  27 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v6.1.1 not signed: https://api.github.com/repos/korandoru/hawkeye/releases/224475687","Warn: release artifact v6.1.0 not signed: https://api.github.com/repos/korandoru/hawkeye/releases/223626477","Warn: release artifact v6.0.4 not signed: https://api.github.com/repos/korandoru/hawkeye/releases/221033954","Warn: release artifact v6.0.3 not signed: https://api.github.com/repos/korandoru/hawkeye/releases/212121024","Warn: release artifact v6.0.2 not signed: https://api.github.com/repos/korandoru/hawkeye/releases/202017956","Warn: release artifact v6.1.1 does not have provenance: https://api.github.com/repos/korandoru/hawkeye/releases/224475687","Warn: release artifact v6.1.0 does not have provenance: https://api.github.com/repos/korandoru/hawkeye/releases/223626477","Warn: release artifact v6.0.4 does not have provenance: https://api.github.com/repos/korandoru/hawkeye/releases/221033954","Warn: release artifact v6.0.3 does not have provenance: https://api.github.com/repos/korandoru/hawkeye/releases/212121024","Warn: release artifact v6.0.2 does not have provenance: https://api.github.com/repos/korandoru/hawkeye/releases/202017956"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/ci.yml:65"],"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T15:23:50.072Z","repository_id":65503971,"created_at":"2025-08-20T15:23:50.072Z","updated_at":"2025-08-20T15:23:50.072Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["cli","license","license-checking","native","native-image"],"created_at":"2024-11-12T22:18:40.345Z","updated_at":"2026-01-16T19:40:31.141Z","avatar_url":"https://github.com/korandoru.png","language":"Rust","funding_links":["https://github.com/sponsors/tisonkun"],"categories":[],"sub_categories":[],"readme":"# HawkEye\n\nSimple license header checker and formatter, in multiple distribution forms.\n\n## Usage\n\nYou can use HawkEye in GitHub Actions or in your local machine. HawkEye provides three basic commands:\n\n```bash\n# check license headers\nhawkeye check\n\n# format license headers (auto-fix all files that failed the check)\nhawkeye format\n\n# remove license headers\nhawkeye remove\n```\n\nYou can use `-h` or `--help` to list out all config options.\n\n### GitHub Actions\n\nThe HawkEye GitHub Action enables users to run license header check by HawkEye with a config file.\n\nFirst of all, add a `licenserc.toml` file in the root of your project. The simplest config for projects licensed under Apache License 2.0 is as below:\n\n\u003e [!NOTE]\n\u003e The full configurations can be found in [the configuration section](#configurations).\n\n```toml\nheaderPath = \"Apache-2.0.txt\"\n\n[properties]\ninceptionYear = 2023\ncopyrightOwner = \"tison \u003cwander4096@gmail.com\u003e\"\n```\n\nYou should change the copyright line according to your information.\n\nTo check license headers in GitHub Actions, add a step in your GitHub workflow:\n\n```yaml\n- name: Check License Header\n  uses: korandoru/hawkeye@v6\n```\n\n### Docker\n\nAlpine image (~18MB):\n\n```shell\ndocker run -it --rm -v $(pwd):/github/workspace ghcr.io/korandoru/hawkeye check\n```\n\n### Arch Linux\n\n\u003e [!NOTE]\n\u003e Reach out to the maintainer ([@orhun](https://github.com/orhun)) of the [package](https://archlinux.org/packages/extra/x86_64/hawkeye/) or report issues on [Arch Linux GitLab](https://gitlab.archlinux.org/archlinux/packaging/packages/hawkeye) in the case of packaging-related problems.\n\n`hawkeye` can be installed with [pacman](https://wiki.archlinux.org/title/Pacman):\n\n```shell\npacman -S hawkeye\n```\n\n### Cargo Install\n\nThe `hawkeye` executable can be installed by:\n\n```shell\ncargo install hawkeye\n```\n\n### Prebuilt Binary\n\nInstead of `cargo install`, you can install `hawkeye` as a prebuilt binary by:\n\n```shell\nexport VERSION=v6.0.0\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/korandoru/hawkeye/releases/download/$VERSION/hawkeye-installer.sh | sh\n```\n\nIt would retain more build info (output by `hawkeye -V`) than `cargo install`.\n\n## Build\n\nThis steps requires Rust toolchain.\n\n```shell\ncargo build --workspace --all-features --bin --tests --examples --benches\n```\n\nBuild Docker image:\n\n```shell\ndocker build . -t hawkeye\n```\n\n## Configurations\n\n### Config file\n\n```toml\n# Base directory for the whole execution.\n# All relative paths is based on this path.\n# default: current working directory\nbaseDir = \".\"\n\n# Inline header template.\n# Either inlineHeader or headerPath should be configured, and inlineHeader is prioritized.\ninlineHeader = \"...\"\n\n# Path to the header template file.\n# Either inlineHeader or headerPath should be configured, and inlineHeader is prioritized.\n# This path is resolved by the ResourceFinder. Check ResourceFinder for the concrete strategy.\n# The header template file is skipped on any execution.\nheaderPath = \"path/to/header.txt\"\n\n# On enabled, check the license header matches exactly with whitespace.\n# Otherwise, strip the header in one line and check.\n# default: true\nstrictCheck = true\n\n# Whether you use the default excludes. Check Default.EXCLUDES for the completed list.\n# To suppress part of excludes in the list, declare exact the same pattern in `includes` list.\n# default: true\nuseDefaultExcludes = true\n\n# The supported patterns of includes and excludes follow gitignore pattern format, plus that:\n# 1. `includes` does not support `!`\n# 2. backslash does not escape letter\n# 3. whitespaces and `#` are normal since we configure line by line\n# See also https://git-scm.com/docs/gitignore#_pattern_format\n\n# Patterns of path to be included on execution.\n# default: all the files under `baseDir`.\nincludes = [\"...\"]\n\n# Patterns of path to be excluded on execution. A leading bang (!) indicates an invert exclude rule.\n# default: empty; if useDefaultExcludes is true, append default excludes.\nexcludes = [\"...\"]\n\n# Keywords that should occur in the header, case-insensitive.\n# default: [\"copyright\"]\nkeywords = [\"copyright\", \"...\"]\n\n# Whether you use the default mapping. Check DocumentType.defaultMapping() for the completed list.\n# default: true\nuseDefaultMapping = true\n\n# Paths to additional header style files. The model of user-defined header style can be found below.\n# default: empty\nadditionalHeaders = [\"...\"]\n\n# Mapping rules (repeated).\n#\n# The key of a mapping rule is a header style type (case-insensitive).\n#\n# Available header style types consist of those defined at `HeaderType` and user-defined ones in `additionalHeaders`.\n# The name of header style type is case-insensitive.\n#\n# If useDefaultMapping is true, the mapping rules defined here can override the default one.\n[mapping.STYLE_NAME]\nfilenames = [\"...\"]  # e.g. \"Dockerfile.native\"\nextensions = [\"...\"] # e.g. \"cc\"\n\n# Properties to fulfill the template.\n# For a defined key-value pair, you can use {{props[\"key\"]}} in the header template, which will be\n# substituted with the corresponding value.\n[properties]\ninceptionYear = 2023\n\n# There are also preset attributes that can be used in the header template (no need to surround them with `props[]`).:\n# * 'attrs.filename' is the current file name, like: pom.xml.\n# * 'attrs.disk_file_created_year'\n\n# Options to configure Git features.\n[git]\n# If enabled, do not process files that are ignored by Git; possible value: ['auto', 'enable', 'disable']\n# 'auto' means this feature tries to be enabled with:\n#   * gix - if `basedir` is in a Git repository.\n#   * ignore crate's gitignore rules - if `basedir` is not in a Git repository.\n# 'enable' means always enabled with gix; failed if it is impossible.\n# default: 'auto'\nignore = 'auto'\n# If enabled, populate file attrs determinated by Git; possible value: ['auto', 'enable', 'disable']\n# Attributes contains:\n#   * 'attrs.git_file_created_year'\n#   * 'attrs.git_file_modified_year'\n# 'auto' means this feature tries to be enabled with:\n#   * gix - if `basedir` is in a Git repository.\n# 'enable' means always enabled with gix; failed if it is impossible.\n# default: 'disable'\nattrs = 'disable'\n```\n\n### Header style file\n\n```toml\n# [REQUIRED] The name of this header.\n[my_header_style]\n\n# The first fixed line of this header. Default to none.\nfirstLine = \"...\"\n\n# The last fixed line of this header. Default to none.\nendLine = \"...\"\n\n# The characters to prepend before each license header lines. Default to empty.\nbeforeEachLine = \"...\"\n\n# The characters to append after each license header lines. Default to empty.\nafterEachLine = \"...\"\n\n# Only for multi-line comments: specify if blank lines are allowed.\n# Default to false because most of the time, a header has some characters on each line.\nallowBlankLines = false\n\n# Specify whether this is a multi-line comment style or not.\n#\n# A multi-line comment style is equivalent to what we have in Java, where a first line and line will delimit\n# a whole multi-line comment section.\n#\n# A style that is not multi-line is usually repeating in each line the characters before and after each line\n# to delimit a one-line comment.\n#\n# Defaulut to true.\nmultipleLines = true\n\n# Only for non multi-line comments: specify if some spaces should be added after the header line and before\n# the `afterEachLine` characters so that all the lines are aligned.\n#\n# Default to false.\npadLines = false\n\n# A regex to define a first line in a file that should be skipped and kept untouched, like the XML declaration\n# at the top of XML documents.\n#\n# Default to none.\nskipLinePattern = \"...\"\n\n# [REQUIRED] The regex used to detect the start of a header section or line.\nfirstLineDetectionPattern = \"...\"\n\n# [REQUIRED] The regex used to detect the end of a header section or line.\nlastLineDetectionPattern = \"...\"\n```\n\n## License\n\n[Apache License 2.0](LICENSE)\n\n## History\n\nThis software is originally from [license-maven-plugin](https://github.com/mathieucarbou/license-maven-plugin), with an initial motivation to bring it beyond a Maven plugin. The core abstractions like `Document`, `Header`, and `HeaderParser` are originally copied from the license-maven-plugin sources under the terms of Apache License 2.0.\n\nLater, when I started focusing on the Docker image's size and integration with Git, I found that Rust is better than Java (GraalVM Native Image) for this purpose. So, I rewrote the core logic in Rust while keeping a slim image. (The old Java implementation is achieved at the [archive-native-image](https://github.com/korandoru/hawkeye/tree/archive-native-image) branch)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkorandoru%2Fhawkeye","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkorandoru%2Fhawkeye","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkorandoru%2Fhawkeye/lists"}