{"id":37308889,"url":"https://github.com/ekline-io/ekline-github-action","last_synced_at":"2026-04-12T23:20:33.128Z","repository":{"id":65754978,"uuid":"588397227","full_name":"ekline-io/ekline-github-action","owner":"ekline-io","description":"Github Action for EkLine","archived":false,"fork":false,"pushed_at":"2026-02-03T05:19:51.000Z","size":431,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-03T15:59:45.438Z","etag":null,"topics":["action","actions","github","github-actions"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/ekline-github-action","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ekline-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-01-13T02:33:05.000Z","updated_at":"2026-01-06T21:28:24.000Z","dependencies_parsed_at":"2023-10-03T12:47:50.411Z","dependency_job_id":"72cfa89a-1043-4708-a346-75af425d5f01","html_url":"https://github.com/ekline-io/ekline-github-action","commit_stats":null,"previous_names":[],"tags_count":217,"template":false,"template_full_name":"reviewdog/action-template","purl":"pkg:github/ekline-io/ekline-github-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekline-io%2Fekline-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekline-io%2Fekline-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekline-io%2Fekline-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekline-io%2Fekline-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekline-io","download_url":"https://codeload.github.com/ekline-io/ekline-github-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekline-io%2Fekline-github-action/sbom","scorecard":{"id":370677,"data":{"date":"2025-08-11","repo":{"name":"github.com/ekline-io/ekline-github-action","commit":"6f79f8e33a245e231d3cc822e51a6a1d93d78638"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":"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":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/dockerimage.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"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":"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":"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dockerimage.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/dockerimage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:154: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:242: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:252: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:259: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:267: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:274: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:284: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:286: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/ekline-io/ekline-github-action/test.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating ghcr.io/ekline-io/ekline-cli:7 to ghcr.io/ekline-io/ekline-cli:7@sha256:2e5d053536b2fb104105929056851ea69d3adf28b5a460df383baa04a2264e9c","Warn: npmCommand not pinned by hash: Dockerfile:11","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  13 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 npmCommand 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":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-x4c5-c7rf-jjgv","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:148"],"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":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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T12:50:59.906Z","repository_id":65754978,"created_at":"2025-08-18T12:50:59.906Z","updated_at":"2025-08-18T12:50:59.906Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29132983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T19:36:52.185Z","status":"ssl_error","status_checked_at":"2026-02-05T19:35:40.941Z","response_time":65,"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":["action","actions","github","github-actions"],"created_at":"2026-01-16T02:58:42.216Z","updated_at":"2026-02-05T20:11:48.521Z","avatar_url":"https://github.com/ekline-io.png","language":"TypeScript","readme":"# EkLine GitHub Action\n\n[![Test](https://github.com/ekline-io/ekline-github-action/workflows/Test/badge.svg)](https://github.com/ekline-io/ekline-github-action/actions?query=workflow%3ATest)\n[![release](https://github.com/ekline-io/ekline-github-action/workflows/release/badge.svg)](https://github.com/ekline-io/ekline-github-action/actions?query=workflow%3Arelease)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/ekline-io/ekline-github-action?logo=github\u0026sort=semver)](https://github.com/ekline-io/ekline-github-action/releases)\n[![release](https://ghcr-badge.egpl.dev/ekline-io/ekline-ci-cd/latest_tag?label=Docker%20version%20ekline_ci_cd)](https://github.com/ekline-io/ekline-cli/pkgs/container/ekline-cli)\n\nImprove the quality and consistency of your documentation with EkLine, an automated review tool for your GitHub repositories. This action integrates seamlessly with your existing GitHub workflow, allowing you to maintain high-quality documentation easily.\n\n\n\u003c!-- TOC --\u003e\n* [EkLine GitHub action](#ekline-github-action)\n  * [Input](#input)\n  * [Usage](#usage)\n  * [Reporters](#reporters)\n    * [Reporter: GitHub Checks (reporter: github-pr-check)](#reporter--github-checks--reporter--github-pr-check-)\n    * [Reporter: GitHub Checks (reporter: github-check)](#reporter--github-checks--reporter--github-check-)\n    * [Reporter: GitHub PullRequest review comment (reporter: github-pr-review)](#reporter--github-pullrequest-review-comment--reporter--github-pr-review-)\n  * [Filter mode](#filter-mode)\n    * [`added` (default)](#added--default-)\n    * [`diff_context`](#diffcontext)\n    * [`file`](#file)\n    * [`nofilter`](#nofilter)\n    * [Filter Mode Support Table](#filter-mode-support-table)\n    * [Ignoring Specific Rules](#ignoring-specific-rules)\n\u003c!-- TOC --\u003e\n* [EkLine Documentation](https://ekline.notion.site/EkLine-Documentation-820e545d76214d9d9cb2cbf627c19613)\n\n## Input\n\n```yaml\ninputs:\n  content_dir:\n    description: 'Content directories relative to the root. Specify a single path or multiple paths (one per line). Example:\n      content_dir: ./testData\n      content_dir: |\n        ./testData\n        ./testData2'\n    default: '.'\n  ek_token:\n    description: 'Token for EkLine application'\n    required: true\n  filter_mode:\n    description: |\n      Filtering mode for the EkLine reviewer command [added,diff_context,file,nofilter].\n      Default is added.\n    default: 'added'\n  github_token:\n    description: 'GITHUB_TOKEN'\n    default: '${{ secrets.github_token }}'\n  reporter:\n    description: 'Reporter of EkLine review command [github-pr-check,github-check,github-pr-review].'\n    default: 'github-pr-review'\n  ignore_rule:\n    description: 'Ignore the rules that are passed in as comma-separated values (eg: EK00001,EK00004). Use this flag to skip specific rules during the review process.'\n    default: ''\n  openapi_spec:\n    description: 'Path to OpenAPI specification file to review'\n    required: false\n  exclude_directories:\n    description: 'Directories to exclude from analysis. Specify a single path or multiple paths (one per line). Example:\n      exclude_directories: ./node_modules\n      exclude_directories: |\n        ./node_modules\n        ./dist'\n    default: ''\n  exclude_files:\n    description: 'Files to exclude from analysis. Specify a single file or multiple files (one per line). Example:\n      exclude_files: ./README.md\n      exclude_files: |\n        ./README.md\n        ./CHANGELOG.md'\n    default: ''\n  debug:\n    description: 'Enable debug mode to print all environment variables starting with INPUT_ when set to true.'\n    default: 'false'\n```\n\n## Usage\n\n```yaml\nname: EkLine\non:\n  push:\n    branches:\n      - master\n      - main\n  pull_request:\njobs:\n  test-pr-review:\n    if: github.event_name == 'pull_request'\n    name: runner / EkLine Reviewer (github-pr-review)\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: ekline-io/ekline-github-action@v6\n        with:\n          content_dir: ./src/docs\n          ek_token: ${{ secrets.ek_token }}\n          github_token: ${{ secrets.github_token }}\n          reporter: github-pr-review\n          openapi_spec: './api/openapi.yaml'\n          ignore_rule: \"EK00010,EK00003\"  # Optional\n          exclude_directories: |  # Optional\n            ./node_modules\n            ./dist\n          exclude_files: |  # Optional\n            ./CHANGELOG.md\n            ./LICENSE\n```\n\n## Reporters\n\nEkLine reviewer can report results in review services as\ncontinuous integration.\n\n### Reporter: GitHub Checks (reporter: github-pr-check)\n\ngithub-pr-check reporter reports results to [GitHub Checks](https://help.github.com/articles/about-status-checks/).\n\n### Reporter: GitHub Checks (reporter: github-check)\n\nIt's basically same as `reporter: github-pr-check` except it works not only for\nPull Request but also for commit.\n\n### Reporter: GitHub PullRequest review comment (reporter: github-pr-review)\n\n![sample-github-pr-review.png](./image/sample-github-pr-review.png)\n\ngithub-pr-review reporter reports results to GitHub PullRequest review comments\nusing GitHub Personal API Access Token.\n[GitHub Enterprise](https://enterprise.github.com/home) is supported too.\n\n- Go to https://github.com/settings/tokens and generate new API token.\n- Check `repo` for private repositories or `public_repo` for public repositories.\n\n\n## Filter mode\nYou can control how EkLine reviewer filter results by `-filter-mode` flag.\nAvailable filter modes are as below.\n\n### `added` (default)\nFilter results by added/modified lines.\n### `diff_context`\nFilter results by diff context. i.e. changed lines +-N lines (N=3 for example).\n### `file`\nFilter results by added/modified file. i.e. EkLine reviewer will report results as long as they are in added/modified file even if the results are not in actual diff.\n### `nofilter`\nDo not filter any results. Useful for posting results as comments as much as possible and check other results in console at the same time.\n\n### Filter Mode Support Table\nNote that not all reporters provide full support of filter mode due to API limitation.\ne.g. `github-pr-review` reporter uses [GitHub Review\nAPI](https://developer.github.com/v3/pulls/reviews/) but it doesn't support posting comment outside diff (`diff_context`),\nso EkLine reviewer will use [Check annotation](https://developer.github.com/v3/checks/runs/) as fallback to post those comments [1].\n\n| `reporter` \\ `filter-mode` | `added` | `diff_context` | `file`                  | `nofilter` |\n| -------------------------- | ------- | -------------- | ----------------------- | ---------- |\n| **`github-check`**         | OK      | OK             | OK                      | OK |\n| **`github-pr-check`**      | OK      | OK             | OK                      | OK |\n| **`github-pr-review`**     | OK      | OK             | Partially Supported [1] | Partially Supported [1] |\n\n- [1] Report results which is outside diff context with Check annotation as fallback if it's running in GitHub actions instead of Review API (comments). All results will be reported to console as well.\n\n### Ignoring Specific Rules\n\nTo ignore specific rules during the review process, you can use the `ignore_rule` flag. This flag accepts a comma-separated list of rule identifiers that you wish to skip.\n\nFor example, if you want to ignore rules `EK00001` , `EK00004` and `EK00005`, you can set the `ignore_rule` flag in your configuration like this:\n```yaml\n  ignore_rule: \"EK00001,EK00004,EK00005\"\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekline-io%2Fekline-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekline-io%2Fekline-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekline-io%2Fekline-github-action/lists"}