{"id":13593565,"url":"https://github.com/puppetlabs/r10k","last_synced_at":"2026-04-02T01:36:20.603Z","repository":{"id":5955068,"uuid":"7176141","full_name":"puppetlabs/r10k","owner":"puppetlabs","description":"Smarter Puppet deployment","archived":false,"fork":false,"pushed_at":"2026-03-13T23:46:30.000Z","size":3512,"stargazers_count":805,"open_issues_count":10,"forks_count":349,"subscribers_count":189,"default_branch":"main","last_synced_at":"2026-03-30T00:39:32.391Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puppetlabs.png","metadata":{"files":{"readme":"README.mkd","changelog":"CHANGELOG.mkd","contributing":"CONTRIBUTING.mkd","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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":"2012-12-15T05:19:38.000Z","updated_at":"2026-03-22T17:31:03.000Z","dependencies_parsed_at":"2023-01-13T13:46:29.448Z","dependency_job_id":"b2703c2b-c538-4fa6-99f9-c667cf9e2fe4","html_url":"https://github.com/puppetlabs/r10k","commit_stats":{"total_commits":2094,"total_committers":155,"mean_commits":"13.509677419354839","dds":0.5090735434574976,"last_synced_commit":"c8ec66928aebd19bd38fbf13cb1be2da0828e181"},"previous_names":[],"tags_count":122,"template":false,"template_full_name":null,"purl":"pkg:github/puppetlabs/r10k","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fr10k","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fr10k/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fr10k/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fr10k/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puppetlabs","download_url":"https://codeload.github.com/puppetlabs/r10k/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fr10k/sbom","scorecard":{"id":749759,"data":{"date":"2025-08-11","repo":{"name":"github.com/puppetlabs/r10k","commit":"4513ea536bd9f257f399ffab0b395cd999ab8006"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Maintained","score":6,"reason":"8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/docker.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/rspec_tests.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":"Code-Review","score":8,"reason":"Found 10/12 approved changesets -- score normalized to 8","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":"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/docker.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/rspec_tests.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/rspec_tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/rspec_tests.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/puppetlabs/r10k/rspec_tests.yml/main?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 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/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":"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":"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"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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/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":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/puppetlabs/.github/SECURITY.md:1","Info: Found linked content: github.com/puppetlabs/.github/SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: github.com/puppetlabs/.github/SECURITY.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 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-22T19:56:36.473Z","repository_id":5955068,"created_at":"2025-08-22T19:56:36.473Z","updated_at":"2025-08-22T19:56:36.473Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:05:07.454Z","status":"ssl_error","status_checked_at":"2026-04-02T00:56:46.496Z","response_time":53,"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":[],"created_at":"2024-08-01T16:01:21.658Z","updated_at":"2026-04-02T01:36:20.579Z","avatar_url":"https://github.com/puppetlabs.png","language":"Ruby","funding_links":[],"categories":["Ruby","Modules"],"sub_categories":["Modules Management"],"readme":"r10k\n====\n\nPuppet environment and module deployment\n\n[![Build Status](https://travis-ci.org/puppetlabs/r10k.png?branch=master)](https://travis-ci.org/puppetlabs/r10k)\n\n\u003e R10k is supported and maintained by Puppet, but we consider it to be feature\n\u003e complete and currently have no plans for any new development. We will keep it\n\u003e working within the context of Puppet Enterprise, but we cannot make any other\n\u003e maintenance promises at this time.\n\n\nDescription\n-----------\n\n[workflow]: https://puppet.com/docs/puppet/latest/environments_about.html\n\nR10k provides a general purpose toolset for deploying Puppet environments and\nmodules. It implements the [Puppetfile](doc/puppetfile.mkd) format and provides a native\nimplementation of Puppet [environments][workflow].\n\nYou might also consider [g10k](https://github.com/xorpaul/g10k) as a non-ruby\nbased alternative.\n\n\nRequirements\n------------\n\nR10k supports the Ruby versions `\u003e= 2.6.0`. It's tested on Ruby 2.6.0 up to\nRuby 3.1.0 + Jruby.\n\nR10k requires additional components, depending on how you plan on managing\nenvironments and modules.\n\n  - Installing modules from the Puppet Forge requires Puppet 7.0.0+ or later.\n  Puppet 5 and 6 may work, but is generally not recommended.\n  - Git is required for creating environments and modules from Git\n  - SVN is required for creating environments and modules from SVN\n\nInstallation\n------------\n\n### Rubygems\n\nFor general use, you should install r10k from Ruby gems:\n\n    gem install r10k\n    r10k help\n\n### Puppet Enterprise 3.x\n\nPuppet Enterprise bundles a copy of Ruby, so if you do not want to use the\nsystem version of Ruby with r10k, you need to use the bundled PE gem command for\ninstallation:\n\n    /opt/puppet/bin/gem install r10k\n    r10k help\n\n### Puppet 4\n\nPuppet 4 bundles a copy of Ruby, so if you do not want to use the\nsystem version of Ruby with r10k, you need to use the bundled puppet gem command\nfor installation.\n\n    /opt/puppetlabs/puppet/bin/gem install r10k\n    /opt/puppetlabs/puppet/bin/r10k help\n\n### Bundler\n\nIf you have more specific needs or plan on modifying r10k you can run it out of\na git repository using Bundler for dependencies:\n\n    git clone https://github.com/puppetlabs/r10k\n    cd r10k\n    bundle install\n    bundle exec r10k help\n\n### Arch Linux\n\nArch Linux provides a [system package](https://archlinux.org/packages/extra/any/r10k/) for r10k.\nThis is built against the [system Ruby](https://archlinux.org/packages/extra/x86_64/ruby/) (which is Ruby 3.0.2 as of 2021-08-03).\nThis package is maintained by [Tim Meusel](https://github.com/bastelfreak).\n\nUsage\n-----\n\nR10k has two primary roles: installing Puppet modules using a standalone\nPuppetfile, and managing Git and SVN based dynamic environments. For more\ninformation see the topic specific documentation:\n\n  * [Puppetfile Documentation](doc/puppetfile.mkd)\n   * [Updating your Puppetfile](doc/updating-your-puppetfile.mkd)\n  * [Environment Deployment Documentation](doc/dynamic-environments.mkd)\n  * [Quickstart](doc/dynamic-environments/quickstart.mkd)\n  * [Common Patterns](doc/common-patterns.mkd)\n  * [Workflow Guide](doc/dynamic-environments/workflow-guide.mkd)\n\nFor more general questions, see the [FAQ](doc/faq.mkd).\n\nDevelopment\n-----------\n\n### i18n\n\nR10k has now had all user-facing strings in error messages and log messages\nexternalized. When adding new error or log messages please follow the\ninstructions for [writing translatable code](https://github.com/puppetlabs/gettext-setup-gem#writing-translatable-code).\n\n### l10n\n\nWhen localizing the strings found in R10k, follow the prescribed\n[translation workflow](https://github.com/puppetlabs/gettext-setup-gem#translation-workflow).\nThe workflow describes the rake tasks provided to generate the .po files for\neach locale.\n\nReleasing\n---------\nTo release a new version of the r10k gem, ensure the [changelog](CHANGELOG.mkd) is up to date and open a pull request updating the [version file](lib/r10k/version.rb). When the PR is merged, a new release of the gem will be triggered.\n\nBy default, a patch (Z) release will be triggered. To release a new major (X) or minor (Y) version, include `#major` or `#minor` (respectively) in your commit message to trigger the appropriate release.\n\nGetting help\n------------\n\n  * [Puppet Community Slack](https://puppetcommunity.slack.com/)\n  * Mailing lists: [puppet-users](https://groups.google.com/forum/#!forum/puppet-users)\n  * Q\u0026A: [Puppet Ask](https://ask.puppetlabs.com/questions/)\n\n## Maintenance\n\nSee [CODEOWNERS](CODEOWNERS) for current project owners.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fr10k","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuppetlabs%2Fr10k","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fr10k/lists"}