{"id":24568542,"url":"https://github.com/ccin2p3/puppet-modulator","last_synced_at":"2025-03-17T05:14:29.513Z","repository":{"id":139622933,"uuid":"411775978","full_name":"ccin2p3/puppet-modulator","owner":"ccin2p3","description":"Public clone of internal gitlab repository, for issues and contributions","archived":false,"fork":false,"pushed_at":"2021-10-08T13:05:05.000Z","size":7484,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-01-23T14:41:28.506Z","etag":null,"topics":["blacksmith","git-flow","puppet","puppet-modules"],"latest_commit_sha":null,"homepage":"https://cc-in2p3-puppet-master-tools.pages.in2p3.fr/puppet-modulator/","language":"Go","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/ccin2p3.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}},"created_at":"2021-09-29T17:50:37.000Z","updated_at":"2023-02-24T17:27:58.000Z","dependencies_parsed_at":"2023-04-23T22:30:54.130Z","dependency_job_id":null,"html_url":"https://github.com/ccin2p3/puppet-modulator","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccin2p3%2Fpuppet-modulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccin2p3%2Fpuppet-modulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccin2p3%2Fpuppet-modulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccin2p3%2Fpuppet-modulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ccin2p3","download_url":"https://codeload.github.com/ccin2p3/puppet-modulator/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243976485,"owners_count":20377691,"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":["blacksmith","git-flow","puppet","puppet-modules"],"created_at":"2025-01-23T14:40:39.747Z","updated_at":"2025-03-17T05:14:29.507Z","avatar_url":"https://github.com/ccin2p3.png","language":"Go","readme":"# Puppet Modulator\n\n[![pipeline status](https://gitlab.in2p3.fr/cc-in2p3-puppet-master-tools/puppet-modulator/badges/develop/pipeline.svg)](https://gitlab.in2p3.fr/cc-in2p3-puppet-master-tools/puppet-modulator/-/commits/develop)\n[![coverage report](https://gitlab.in2p3.fr/cc-in2p3-puppet-master-tools/puppet-modulator/badges/develop/coverage.svg)](https://gitlab.in2p3.fr/cc-in2p3-puppet-master-tools/puppet-modulator/-/commits/develop)\n\n- [Puppet Modulator](#puppet-modulator)\n  - [Description](#description)\n  - [Usage](#usage)\n    - [Pro tip: set an alias](#pro-tip-set-an-alias)\n    - [Git-flow wrappers](#git-flow-wrappers)\n      - [Hotfix](#hotfix)\n      - [Release](#release)\n    - [Metadata manipulation](#metadata-manipulation)\n      - [Bump versions](#bump-versions)\n  - [Install](#install)\n  - [Git flow subcommands](#git-flow-subcommands)\n    - [Release and Hotfix version auto-guess](#release-and-hotfix-version-auto-guess)\n  - [Examples](#examples)\n    - [Metadata manipulation](#metadata-manipulation-1)\n      - [Bump version without auto commit](#bump-version-without-auto-commit)\n      - [Bump version with auto commit](#bump-version-with-auto-commit)\n    - [Git flow release](#git-flow-release)\n      - [Start and finish a git-flow release](#start-and-finish-a-git-flow-release)\n  - [TODO](#todo)\n    - [Git flow](#git-flow)\n    - [Metadata](#metadata)\n\n## Description\n\nHigh level wrapper that allows to:\n* quickly edit `metadata.json` version field\n* wrap `git-flow` with common Puppet module edition workflows\n\n## Complete documentation\n\nThe complete documentation can be found at https://cc-in2p3-puppet-master-tools.pages.in2p3.fr/puppet-modulator/.\n\n## Usage\n\n```\n❯ puppet-modulator -h\nUsage:\n  puppet-modulator [command]\n\nAvailable Commands:\n  completion  generate the autocompletion script for the specified shell\n  flow       A git-flow high-level wrapper for hotfixes and releases\n  help        Help about any command\n  metadata    Manipulate module metadata.json file\n  version     Display software version and exit\n\nFlags:\n      --config string   config file (default is $HOME/.puppet-modulator.yaml)\n  -d, --debug           Enable debug\n  -h, --help            help for puppet-modulator\n\nUse \"puppet-modulator [command] --help\" for more information about a command.\n```\n\n### Pro tip: set an alias\n\nIf `puppet-modulator` is too long for you to type, just set an alias such as `alias pm=\"puppet-modulator\"` and all the commands will become\n\n```\n$ pm flow hotfix start\n```\n\nand so on\n\n### Git-flow wrappers\n\n#### Hotfix\n\n```\n❯ puppet-modulator flow hotfix -h\nA git-flow high-level wrapper for hotfixes\n\nUsage:\n  puppet-modulator flow hotfix [command]\n\nAvailable Commands:\n  finish      A git-flow high-level wrapper to finish hotfixes\n  start       A git-flow high-level wrapper to start hotfixes\n\nFlags:\n  -h, --help   help for hotfix\n\nGlobal Flags:\n      --config string   config file (default is $HOME/.puppet-modulator.yaml)\n  -d, --debug           Enable debug\n\nUse \"puppet-modulator flow hotfix [command] --help\" for more information about a command.\n```\n\n#### Release\n\n```\n❯ puppet-modulator flow release -h\nA git-flow high-level wrapper for releases\n\nUsage:\n  puppet-modulator flow release [command]\n\nAvailable Commands:\n  finish      A git-flow high-level wrapper to finish releases\n  start       A git-flow high-level wrapper to start releases\n\nFlags:\n  -h, --help   help for release\n\nGlobal Flags:\n      --config string   config file (default is $HOME/.puppet-modulator.yaml)\n  -d, --debug           Enable debug\n\nUse \"puppet-modulator flow release [command] --help\" for more information about a command.\n```\n\n### Metadata manipulation\n\n#### Bump versions\n\n```\n❯ puppet-modulator metadata -h\nManipulate module metadata.json file\n\nUsage:\n  puppet-modulator metadata [command]\n\nAvailable Commands:\n  bump\n  set-version Set exact module version\n\nFlags:\n  -g, --git-commit                       Commit changes to git\n  -m, --git-commit-msg string            Git commit message (default \"[meta] Bump version\")\n  -h, --help                             help for metadata\n  -p, --keys-sort-commit-policy string   policy related to metadata keys sort commit. If pre-commit is used, then a dedicated commit will be created dedicated to metadata keys sorting. If no-pre-commit is used, metadata keys sorting will still occurs, but no dedicated commit will be created (default \"pre-commit\")\n  -o, --output string                    Where to write metadata to. Defaults to modify metadata in-place\n\nGlobal Flags:\n      --config string   config file (default is $HOME/.puppet-modulator.yaml)\n  -d, --debug           Enable debug\n\nUse \"puppet-modulator metadata [command] --help\" for more information about a command.\n```\n\n## Install\n\nPre-compiled binaries are available in the [release page](https://gitlab.in2p3.fr/cc-in2p3-puppet-master-tools/puppet-modulator/-/releases).\n\n## Git flow subcommands\n\n### Release and Hotfix version auto-guess\n\nIf you do not specify a version in your `puppet-modulator flow hotfix start` or `puppet-modulator flow release start` command, `puppet-modulator` will admit that you're trying to work _quickly_ and use the most common _version bump logic_ for those operations.\n\nThis mean that:\n* for a `hotfix`, it will _increment the patch version_\n* for a `release`, it will _increment the minor version_\n\n**Important**:\n* If you don't want to use the _version auto-guess_ feature, you'll have to explicitly specify a version on command-line.\n* If you want to specify a `base reference` branch and still use the _auto-guess_ feature, you can use `\"\"` (empty string) for the version, or `?` (question mark).\n\n## Examples\n\n### Metadata manipulation\n\n#### Bump version without auto commit\n\n![Bump version without auto commit](docs/modulator_metadata_bump.gif)\n\n#### Bump version with auto commit\n\n![Bump version with auto commit](docs/modulator_metadata_bump_autocommit.gif)\n\n### Git flow release\n\n#### Start and finish a git-flow release\n\n![Start and finish a git-flow release](docs/modulator_release_start_finish.gif)\n\n## TODO\n\n### Git flow\n\n* [ ] Add a _subcommand_ or _flag_ to allow for _flash releases_ that would allow developer to _start_, _commit_, _finish_ a release with only one command\n\n### Metadata\n\n* [ ] Add command to add a module _dependency_ (with SemVer range validation / helpers)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccin2p3%2Fpuppet-modulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccin2p3%2Fpuppet-modulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccin2p3%2Fpuppet-modulator/lists"}