{"id":19670265,"url":"https://github.com/jotaen/kong-completion","last_synced_at":"2026-04-10T22:04:26.324Z","repository":{"id":56855585,"uuid":"526192821","full_name":"jotaen/kong-completion","owner":"jotaen","description":"Tab completion for kong CLI apps","archived":false,"fork":false,"pushed_at":"2025-08-27T18:53:28.000Z","size":32,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-28T03:35:52.308Z","etag":null,"topics":["completion","kong","tab-completion"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/jotaen/kong-completion","language":"Go","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/jotaen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2022-08-18T12:00:49.000Z","updated_at":"2025-08-27T18:50:56.000Z","dependencies_parsed_at":"2023-12-10T18:25:18.256Z","dependency_job_id":"a01a53dc-83d5-443f-aa0f-57693ae9880d","html_url":"https://github.com/jotaen/kong-completion","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/jotaen/kong-completion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaen%2Fkong-completion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaen%2Fkong-completion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaen%2Fkong-completion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaen%2Fkong-completion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jotaen","download_url":"https://codeload.github.com/jotaen/kong-completion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jotaen%2Fkong-completion/sbom","scorecard":{"id":534816,"data":{"date":"2025-08-11","repo":{"name":"github.com/jotaen/kong-completion","commit":"994f1274b7de2517a8ebd3bbe8795517f70e4fc2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/11 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/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":"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["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":"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":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/jotaen/kong-completion/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/jotaen/kong-completion/test.yml/main?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 goCommand 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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-20T06:40:12.521Z","repository_id":56855585,"created_at":"2025-08-20T06:40:12.521Z","updated_at":"2025-08-20T06:40:12.521Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278368218,"owners_count":25975410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["completion","kong","tab-completion"],"created_at":"2024-11-11T17:05:35.820Z","updated_at":"2026-04-10T22:04:26.301Z","avatar_url":"https://github.com/jotaen.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tab Completion for kong\n\n`kong-completion` is a drop-in library that provides tab completion for CLI apps written with [kong](https://github.com/alecthomas/kong).\n\nIt currently supports the following shells:\n\n- Bash\n- Zsh\n- Fish\n\n`kong-completion` provides two main functionalities:\n\n- It makes a kong app able to intercept and respond to tab completion requests. The completions are automatically derived from kong annotations. They can optionally be enhanced or adjusted with custom predictors.\n- Since users have to manually activate the completion functionality in their shell, `kong-completion` provides a subcommand that instructs them how to achieve this.\n\n## Get Started\n\nSee [the code of the sample app](./example/greet.go) for how to use the library.\n\nIn case you want to compile and run the demo app, keep in mind that completions only work for binaries in your $PATH, not for local ones (e.g. with `./` prefix). You also have to activate the completions first.\n\n## API Reference\n\nFor flags and commands of your kong app, you can specify the following parameters in the annotation:\n\n- `completion-enabled` (optional)\n  - Whether this command or flag should be eligible for completions. By default, all flags and commands are eligible unless they are hidden. You can override this behaviour via this annotation parameter.\n  - Possible values: `true`, `false`\n  - Default value: derived from kong’s `hidden` flag – i.e., if the flag is hidden, it by default isn’t available for completion.\n  - Usage example: `completion-enabled:\"true\"`\n- `completion-enabled-command-alias` (optional)\n  - Whether the command alias(es) should be included in the completions list.\n  - Possible values: `true`, `false`\n  - Default value: `true`\n  - Usage example: `completion-enabled-command-alias:\"true\"`\n- `completion-enabled-flag-alias` (optional)\n  - Whether the flag alias(es) should be included in the completions list.\n  - Possible values: `true`, `false`\n  - Default value: `true`\n  - Usage example: `completion-enabled-flag-alias:\"true\"`\n- `completion-enabled-flag-short` (optional)\n  - Whether the short flag should be included in the completions list.\n  - Possible values: `true`, `false`\n  - Default value: `true`\n  - Usage example: `completion-enabled-flag-short:\"true\"`\n- `completion-predictor` (optional)\n  - Which completion predictor to use for completing this argument.\n  - Possible values: any predictor name that is registered via the `WithPredictor` method.\n  - Usage example: `completion-predictor:\"zipcode\"`\n\nFor the `Completion` subcommand specifically (as provided by this library), you can specify the following parameters in the annotation:\n\n- `completion-shell-default` (optional)\n  - Whether completions should fall back to the shell’s default completion behaviour, e.g. to complete file paths.\n  - Possible values: `true`, `false`\n  - Default value: `true`\n  - Usage example: `completion-shell-default:\"false\"`\n\n## About\n\n`kong-completion` is free and open-source software, distributed under the [MIT license](./LICENSE.txt).\n\nThis library was originally based on [kongplete](https://github.com/WillAbides/kongplete).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjotaen%2Fkong-completion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjotaen%2Fkong-completion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjotaen%2Fkong-completion/lists"}