{"id":35216705,"url":"https://github.com/kickr-dev/kickr","last_synced_at":"2026-04-07T13:32:18.661Z","repository":{"id":310123329,"uuid":"1038725923","full_name":"kickr-dev/kickr","owner":"kickr-dev","description":"Kickr CLI for easy project kickstart generation","archived":false,"fork":false,"pushed_at":"2026-04-06T10:41:41.000Z","size":5340,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"beta","last_synced_at":"2026-04-06T11:26:39.128Z","etag":null,"topics":["generator","golang","layout","repository-tools","templates"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kickr-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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":"2025-08-15T17:57:31.000Z","updated_at":"2026-04-06T10:41:44.000Z","dependencies_parsed_at":"2025-08-15T22:59:44.564Z","dependency_job_id":"8890cdd1-1d6d-4289-8abf-69e786c2d7ad","html_url":"https://github.com/kickr-dev/kickr","commit_stats":null,"previous_names":["kickr-dev/kickr"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/kickr-dev/kickr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kickr-dev%2Fkickr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kickr-dev%2Fkickr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kickr-dev%2Fkickr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kickr-dev%2Fkickr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kickr-dev","download_url":"https://codeload.github.com/kickr-dev/kickr/tar.gz/refs/heads/beta","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kickr-dev%2Fkickr/sbom","scorecard":{"id":1236723,"data":{"date":"2025-09-01T18:43:49Z","repo":{"name":"github.com/kickr-dev/kickr","commit":"b7a3171d284e633c579fbcc0db5702680c5b3eea"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":6.5,"checks":[{"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":"Code-Review","score":0,"reason":"Found 0/14 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":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info: Possibly incomplete results: error parsing shell code: case patterns must be separated with |: pkg/generate/templates/_templates/launcher.sh.tmpl:0","Info:  26 out of  26 GitHub-owned GitHubAction dependencies pinned","Info:  25 out of  25 third-party GitHubAction 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":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: 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":"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":"Maintained","score":0,"reason":"project was created within the last 90 days. Please review its contents carefully","details":["Warn: Repository was created within the last 90 days."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/dependency-submission.yml:38","Info: jobLevel 'actions' permission set to 'read': .github/workflows/deployment.yml:30","Info: found token with 'none' permissions: .github/workflows/deployment.yml:77","Info: found token with 'none' permissions: .github/workflows/deployment.yml:167","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/integration.yml:114","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/integration.yml:43","Info: jobLevel 'contents' permission set to 'read': .github/workflows/labeler.yml:27","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/scorecard.yml:35","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecard.yml:30","Info: jobLevel 'checks' permission set to 'read': .github/workflows/scorecard.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:32","Info: jobLevel 'issues' permission set to 'read': .github/workflows/scorecard.yml:34","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:32","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-submission.yml:31","Info: topLevel 'contents' permission set to 'read': .github/workflows/deployment.yml:23","Info: topLevel 'contents' permission set to 'read': .github/workflows/integration.yml:33","Info: topLevel 'contents' permission set to 'read': .github/workflows/labeler.yml:19","Info: topLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:22"],"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":"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"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":"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":"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"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":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'beta'","Info: 'force pushes' disabled on branch 'beta'","Info: 'branch protection settings apply to administrators' is required to merge on branch 'beta'","Warn: could not determine whether codeowners review is allowed","Warn: no status checks found to merge onto branch 'beta'","Warn: PRs are not required to make changes on branch 'beta'; or we don't have data to detect it.If you think it might be the latter, make sure to run Scorecard with a PAT or use Repo Rules (that are always public) instead of Branch Protection settings"],"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":"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":"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Contributors","score":10,"reason":"project has 4 contributing companies or organizations","details":["Info: found contributions from: kickr-dev, mend, semantic-release, soprasteria"],"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (20) 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":"CI-Tests","score":10,"reason":"16 out of 16 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-09-01T20:41:51.724Z","repository_id":310123329,"created_at":"2025-09-01T20:41:51.724Z","updated_at":"2025-09-01T20:41:51.724Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31515144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["generator","golang","layout","repository-tools","templates"],"created_at":"2025-12-29T22:30:55.452Z","updated_at":"2026-04-07T13:32:18.655Z","avatar_url":"https://github.com/kickr-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kickr \u003c!-- omit in toc --\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"GitLab Release\" src=\"https://img.shields.io/gitlab/v/release/kickr-dev%2Fkickr?gitlab_url=https%3A%2F%2Fgitlab.com\u0026include_prereleases\u0026sort=semver\u0026style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitLab Issues\" src=\"https://img.shields.io/gitlab/issues/open/kickr-dev%2Fkickr?gitlab_url=https%3A%2F%2Fgitlab.com\u0026style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitLab License\" src=\"https://img.shields.io/gitlab/license/kickr-dev%2Fkickr?gitlab_url=https%3A%2F%2Fgitlab.com\u0026style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitLab CICD\" src=\"https://img.shields.io/gitlab/pipeline-status/kickr-dev%2Fkickr?gitlab_url=https%3A%2F%2Fgitlab.com\u0026branch=main\u0026style=for-the-badge\"\u003e\n  \u003cimg alt=\"Go Version\" src=\"https://img.shields.io/gitlab/go-mod/go-version/kickr-dev/kickr?style=for-the-badge\"\u003e\n  \u003cimg alt=\"Go Report Card\" src=\"https://goreportcard.com/badge/gitlab.com/kickr-dev/kickr?style=for-the-badge\"\u003e\n\u003c/div\u003e\n\n---\n\n- [How to use ?](#how-to-use-)\n  - [Go](#go)\n  - [Linux](#linux)\n- [Commands](#commands)\n  - [Init](#init)\n  - [Generate](#generate)\n- [Kickr file](#kickr-file)\n\n## How to use ?\n\n### Go\n\n```sh\ngo install github.com/kickr-dev/kickr/cmd/kickr@latest\n```\n\n### Linux\n\n```sh\nOS=\"linux\" # change it depending on your case\nARCH=\"amd64\" # change it depending on your case\nINSTALL_DIR=\"$HOME/.local/bin\" # change it depending on your case\n\nnew_version=$(curl -fsSL \"https://api.github.com/repos/kickr-dev/kickr/releases/latest\" | jq -r '.tag_name')\nurl=\"https://github.com/kickr-dev/kickr/releases/download/$new_version/kickr_${OS}_${ARCH}.tar.gz\"\ncurl -fsSL \"$url\" | (mkdir -p \"/tmp/kickr/$new_version\" \u0026\u0026 cd \"/tmp/kickr/$new_version\" \u0026\u0026 tar -xz)\ncp \"/tmp/kickr/$new_version/kickr\" \"$INSTALL_DIR/kickr\"\n```\n\n## Commands\n\n```\nKickr initializes or generates kickr projects. Kickr projects are only defined by a .kickr file\nand multiple files automatically generated to avoid multiple hours to setup Continuous Integration, coverage, security analyzes, helm chart, etc.\n\nKickr generation can be done with 'kickr' command or 'kickr generate' command.\n\nUsage:\n  kickr [flags]\n  kickr [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  generate    Generate project layout\n  help        Help about any command\n  init        Initialize new kickr project\n  version     Show current version\n\nFlags:\n  -d, --dir string          set directory where generation will be made (default is current directory)\n  -f, --force               force generation of all files initially created by kickr (README.md, SECURITY.md, etc.) even if the initial generated notice has been removed\n  -h, --help                help for kickr\n      --log-format string   set logging format (either \"text\" or \"json\") (default \"text\")\n      --log-level string    set logging level (default \"info\")\n```\n\n### Init\n\n```\nInitialize new kickr project\n\nUsage:\n  kickr init [flags]\n\nFlags:\n  -h, --help   help for init\n\nGlobal Flags:\n  -d, --dir string          set directory where generation will be made (default is current directory)\n      --log-format string   set logging format (either \"text\" or \"json\") (default \"text\")\n      --log-level string    set logging level (default \"info\")\n```\n\n### Generate\n\n```\nGenerate project layout\n\nUsage:\n  kickr generate [flags]\n\nFlags:\n  -f, --force   force generation of all files initially created by kickr (README.md, SECURITY.md, etc.) even if the initial generated notice has been removed\n  -h, --help    help for generate\n\nGlobal Flags:\n  -d, --dir string          set directory where generation will be made (default is current directory)\n      --log-format string   set logging format (either \"text\" or \"json\") (default \"text\")\n      --log-level string    set logging level (default \"info\")\n```\n\n## Kickr file\n\nTBD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkickr-dev%2Fkickr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkickr-dev%2Fkickr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkickr-dev%2Fkickr/lists"}