{"id":13777754,"url":"https://github.com/voxpupuli/puppet-blacksmith","last_synced_at":"2025-05-11T11:34:07.026Z","repository":{"id":6588269,"uuid":"7830768","full_name":"voxpupuli/puppet-blacksmith","owner":"voxpupuli","description":"Ruby Gem with Puppet Module utilities","archived":false,"fork":false,"pushed_at":"2024-10-25T13:48:11.000Z","size":343,"stargazers_count":69,"open_issues_count":3,"forks_count":31,"subscribers_count":44,"default_branch":"master","last_synced_at":"2024-10-29T14:22:33.288Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2013-01-25T23:49:43.000Z","updated_at":"2024-10-21T09:52:46.000Z","dependencies_parsed_at":"2024-11-06T12:05:36.945Z","dependency_job_id":"16555005-cd57-4fa5-8c3c-4caa91d4817f","html_url":"https://github.com/voxpupuli/puppet-blacksmith","commit_stats":{"total_commits":182,"total_committers":29,"mean_commits":6.275862068965517,"dds":0.7032967032967032,"last_synced_commit":"3f187bafe5c5785ff6bafe9f9ca06410109e0b03"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-blacksmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-blacksmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-blacksmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-blacksmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-blacksmith/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224031887,"owners_count":17244358,"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","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":["hacktoberfest"],"created_at":"2024-08-03T18:00:48.265Z","updated_at":"2024-11-17T13:31:05.915Z","avatar_url":"https://github.com/voxpupuli.png","language":"Ruby","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":["Module Management","Modules"],"sub_categories":["Modules Management"],"readme":"puppet-blacksmith\n=================\n\n[![License](https://img.shields.io/github/license/voxpupuli/puppet-blacksmith.svg)](https://github.com/voxpupuli/puppet-blacksmith/blob/master/LICENSE)\n[![Test](https://github.com/voxpupuli/puppet-blacksmith/actions/workflows/test.yml/badge.svg)](https://github.com/voxpupuli/puppet-blacksmith/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/voxpupuli/puppet-blacksmith/branch/master/graph/badge.svg)](https://codecov.io/gh/voxpupuli/puppet-blacksmith)\n[![Release](https://github.com/voxpupuli/puppet-blacksmith/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-blacksmith/actions/workflows/release.yml)\n[![RubyGem Version](https://img.shields.io/gem/v/puppet-blacksmith.svg)](https://rubygems.org/gems/puppet-blacksmith)\n[![RubyGem Downloads](https://img.shields.io/gem/dt/puppet-blacksmith.svg)](https://rubygems.org/gems/puppet-blacksmith)\n[![Donated by Carlos Sanchez](https://img.shields.io/badge/donated%20by-Carlos%20Sanchez-fb7047.svg)](#transfer-notice)\n\nRuby Gem with several Puppet Module utilities\n\n![I don't always release my Puppet modules, but when I do I push them directly to the Forge](https://raw.github.com/voxpupuli/puppet-blacksmith/gh-pages/dos-equis.jpg)\n\n# Rake tasks\n\n## Installation\n\nInstall the gem\n\n```console\n$ gem install puppet-blacksmith\n```\n\nAdd to your Rakefile\n\n```ruby\nrequire 'puppet_blacksmith/rake_tasks'\n```\n\nAnd you can start using the Rake tasks. Note that you might have to delete `.rake_t_cache`\nbefore the tasks appear in the output of `rake -T`.\n\n## Tasks\n\nRake tasks included:\n\n| task               | description |\n| ------------------ | ----------- |\n| module:build       | Build the module using puppet-modulebuilder |\n| module:bump        | Bump module version to the next patch |\n| module:bump:patch  | Bump module version to the next patch |\n| module:bump:minor  | Bump module version to the next minor version |\n| module:bump:major  | Bump module version to the next major version |\n| module:bump:full   | Bump module version to the version set in the BLACKSMITH_FULL_VERSION env variable |\n| module:bump_commit | Bump version and git commit |\n| module:bump_commit:patch  | Bump module version to the next patch and git commit |\n| module:bump_commit:minor  | Bump module version to the next minor version and git commit |\n| module:bump_commit:major  | Bump module version to the next major version and git commit |\n| module:bump_commit:full   | Bump module version to the version set in the BLACKSMITH_FULL_VERSION env variable and git commit |\n| module:bump_to_version\\[:new\\_version\\] | Bump module version to _new\\_version_ |\n| module:clean       | Runs clean again |\n| module:dependency[modulename, version] | Updates the module version of a specific dependency |\n| module:push        | Push module to the Puppet Forge |\n| module:release     | Release the Puppet module, doing a clean, build, bump_commit, tag, push and git push |\n| module:tag         | Git tag with the current module version |\n| module:version     | Get the current module version |\n| module:version:next | Get the next patch module version |\n| module:version:next:patch | Get the next patch module version |\n| module:version:next:minor | Get the next minor module version |\n| module:version:next:major | Get the next major module version |\n\n### Full release\n\nDo everything needed to push to the Forge with just one command\n\n```console\n$ rake module:release\n```\n\n### Bump the version of a module\n\nBump your `metadata.json` to the next version\n\n```console\n$ rake module:bump\n```\n\n### Push a module to a repository\n\nRun rake. Ensure you are doing it in a clean working folder or the puppet module builder will package all the unnecessary files.\n\n```console\n$ rake module:push\n```\n\n#### Configuring to push a module to the Puppet Forge\n\nConfigure your credentials in `~/.puppetforge.yml`. Forge API keys may be created and revoked from a user's\nprofile on the [Forge website](https://forge.puppet.com/), where other profile details are managed.\n\n```yaml\n---\napi_key: myAPIkey\n```\n\nOr set the equivalent environment variable in your shell\n\n```bash\nexport BLACKSMITH_FORGE_API_KEY=myAPIkey\n```\n\n\n#### Configuring to push a module to a JFrog Artifactory\n\nConfigure your credentials in `~/.puppetforge.yml` or within the project's root directory in `./puppetforge.yml`\n\n```yaml\n---\nurl: https://artifactory.example.com\nforge_type: artifactory\nusername: myuser\npassword: mypassword\n```\n\nOr set the equivalent environment variables in your shell\n\n```bash\nexport BLACKSMITH_FORGE_URL=https://artifactory.example.com\nexport BLACKSMITH_FORGE_TYPE=artifactory\nexport BLACKSMITH_FORGE_USERNAME=myuser\nexport BLACKSMITH_FORGE_PASSWORD=mypassword\n```\n\nAlternatively, you can generate an API Key on the Artifactory profile page and us that in `puppetforge.yml`.\n\n```yaml\n---\nurl: https://artifactory.example.com\nforge_type: artifactory\napi_key: myAPIkey\n````\n\nOr via an environment variable:\n\n```bash\nexport BLACKSMITH_FORGE_API_KEY=myAPIkey\n```\n\n# Customizing tasks\n\nIn your Rakefile:\n\n```ruby\nrequire 'puppet_blacksmith/rake_tasks'\nBlacksmith::RakeTask.new do |t|\n  t.tag_pattern = \"v%s\" # Use a custom pattern with git tag. %s is replaced with the version number.\n  t.build = false # do not build the module nor push it to the Forge, just do the tagging [:clean, :tag, :bump_commit]\nend\n````\n\n# GPG signed tags\n\nIn your Rakefile:\n\n```ruby\nrequire 'puppet_blacksmith/rake_tasks'\nBlacksmith::RakeTask.new do |t|\n  t.tag_message_pattern = \"Version %s\" # Signed tags must have a message\n  t.tag_sign = true # enable GPG signing\nend\n```\n\n# Testing blacksmith\n\n```bash\nbundle install\nbundle exec rake\n```\n\n## Transfer Notice\n\nThis plugin was originally authored by [Carlos Sanchez](https://blog.csanchez.org/).\nThe maintainer preferred that Vox Pupuli take ownership of the module for future improvement and maintenance.\nExisting pull requests and issues were transferred over, please fork and continue to contribute at https://github.com/voxpupuli/beaker-vmware\n\nPreviously: https://github.com/puppetlabs/beaker-vmware\n\n## License\n\nThis gem is licensed under the Apache-2 license.\n\n## Release information\n\nTo make a new release, please do:\n* update the version in lib/puppet_blacksmith/version.rb\n* Install gems with `bundle install --with release --path .vendor`\n* generate the changelog with `bundle exec rake changelog`\n* Check if the new version matches the closed issues/PRs in the changelog\n* Create a PR with it\n* After it got merged, push a tag. GitHub actions will do the actual release to rubygems and GitHub Packages\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-blacksmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-blacksmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-blacksmith/lists"}