{"id":21893771,"url":"https://github.com/goodwaygroup/gwvault","last_synced_at":"2025-04-15T15:22:44.664Z","repository":{"id":40314281,"uuid":"145130907","full_name":"GoodwayGroup/gwvault","owner":"GoodwayGroup","description":"ansible-vault CLI reimplemented in go","archived":false,"fork":false,"pushed_at":"2025-01-08T20:42:08.000Z","size":2319,"stargazers_count":32,"open_issues_count":16,"forks_count":10,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-28T21:51:12.367Z","etag":null,"topics":["ansible","ansible-vault","benchmark","cli","cli-reimplemented","decrypt","decryption","encrypt","encrytion","golang"],"latest_commit_sha":null,"homepage":"https://goodwaygroup.github.io/gwvault/","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/GoodwayGroup.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2018-08-17T14:31:52.000Z","updated_at":"2025-02-16T12:20:40.000Z","dependencies_parsed_at":"2023-10-05T17:30:49.066Z","dependency_job_id":"ee09232f-84c6-46d1-8d88-736c446757c3","html_url":"https://github.com/GoodwayGroup/gwvault","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodwayGroup%2Fgwvault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodwayGroup%2Fgwvault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodwayGroup%2Fgwvault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodwayGroup%2Fgwvault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoodwayGroup","download_url":"https://codeload.github.com/GoodwayGroup/gwvault/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249095375,"owners_count":21211913,"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":["ansible","ansible-vault","benchmark","cli","cli-reimplemented","decrypt","decryption","encrypt","encrytion","golang"],"created_at":"2024-11-28T13:16:40.196Z","updated_at":"2025-04-15T15:22:44.626Z","avatar_url":"https://github.com/GoodwayGroup.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gwvault - GoodwayGroup Ansible Vault\n\n\u003e `ansible-vault` CLI reimplemented in go\n\n`ansible-vault` is a very powerful tool and we wanted to simplifying the install and management of the tool as a standalone, cross platform tool.\n\n## Basic Usage\n\nPlease see [the docs for details on the commands.](./docs/gwvault.md)\n\nUse in place of `ansible-vault`. All commands are reimplemented. The tool will default to asking for your Vault password.\n\n```\n$ gwvault -h\nNAME:\n   gwvault - encryption/decryption utility for Ansible data files\n\nUSAGE:\n   main [global options] command [command options] [arguments...]\n\nCOMMANDS:\n   encrypt                            encrypt file\n   decrypt                            decrypt file\n   edit                               edit file and re-encrypt\n   rekey                              alter encryption password and re-encrypt\n   create                             create a new encrypted file\n   view                               view inputs of encrypted file\n   encrypt_string, av_encrypt_string  encrypt provided string, output in ansible-vault format\n   install-manpage                    Generate and install man page\n   version, v                         Print version info\n   help, h                            Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --vault-password-file VAULT_PASSWORD_FILE          vault password file VAULT_PASSWORD_FILE\n   --new-vault-password-file NEW_VAULT_PASSWORD_FILE  new vault password file for rekey NEW_VAULT_PASSWORD_FILE\n   --help, -h                                         show help (default: false)\n```\n\n## Installation\n\n### [`asdf` plugin](https://github.com/GoodwayGroup/asdf-gwvault)\n\nAdd plugin:\n\n```\n$ asdf plugin add gwvault\n```\n\nInstall the latest version:\n```\n$ asdf install gwvault latest\n```\n\n### [Homebrew](https://brew.sh) (for macOS users)\n\n```\nbrew tap GoodwayGroup/gwvault\nbrew install gwvault\n```\n\n### curl binary\n\n```\n$ curl https://i.jpillora.com/GoodwayGroup/gwvault! | bash\n```\n\n### [docker](https://www.docker.com/)\n\nThe compiled docker images are maintained on [GitHub Container Registry (ghcr.io)](https://github.com/orgs/GoodwayGroup/packages/container/package/gwvault).\nWe maintain the following tags:\n\n- `edge`: Image that is build from the current `HEAD` of the main line branch.\n- `latest`: Image that is built from the [latest released version](https://github.com/GoodwayGroup/gwvault/releases)\n- `x.y.z` (versions): Images that are build from the tagged versions within Github.\n\n```bash\ndocker pull ghcr.io/goodwaygroup/gwvault\ndocker run -v \"$PWD\":/workdir ghcr.io/goodwaygroup/gwvault --version\n```\n\n### man page\n\nTo install `man` page:\n\n```\n$ gwvault install-manpage\n```\n\n## Benchmarks\n\nBenchmarking done using [`bench`](https://github.com/Gabriel439/bench). Execute the `benchmark/run.sh` script to generate a new benchmark.\n\nAs compared to `ansible-vault` (v2.9.11 on python v3.8.5), typical actions take a 80% less time to complete.\n\n![image](https://user-images.githubusercontent.com/1429775/89319494-cb4b0400-d645-11ea-9f6a-592900130125.png)\n\n|Action|`ansible-vault`|`gwvault`|\n|------|---------------|---------|\n| encrypt | 482 ms | **94 ms** |\n| decrypt | 499 ms | **96 ms** |\n| rekey | 650 ms | **162 ms** |\n| encrypt_string | 429 ms | **64 ms** |\n| encrypt + decrypt | 1,087 ms | **168 ms** |\n\nSee [`./benchmark/results.html`](./benchmark/results.html) for a detailed breakdown of the results after running the benchmark.\n\n## Built With\n\n* go v1.16+\n* make\n* [goreleaser](https://goreleaser.com/install/)\n\n## Deployment\n\nRun `./release.sh $VERSION`\n\nThis will update docs, changelog, add the tag, push main and the tag to the repo. The `goreleaser` action will publish the binaries to the Github Release.\n\nIf you want to simulate the `goreleaser` process, run the following command:\n\n```\n$ curl -sL https://git.io/goreleaser | bash -s -- --rm-dist --skip-publish --snapshot\n```\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n1. Fork the [GoodwayGroup/gwvault](https://github.com/GoodwayGroup/gwvault) repo\n1. Use `go \u003e= 1.16`\n1. Branch \u0026 Code\n1. Run linters :broom: `golangci-lint run`\n    - The project uses [golangci-lint](https://golangci-lint.run/usage/install/#local-installation)\n1. Commit with a Conventional Commit\n1. Open a PR\n\n## Versioning\n\nWe employ [git-chglog](https://github.com/git-chglog/git-chglog) to manage the [CHANGELOG.md](CHANGELOG.md). For the versions available, see the [tags on this repository](https://github.com/GoodwayGroup/gwvault/tags).\n\n## Authors\n\n* **Derek Smith** - [@clok](https://github.com/clok)\n* **Paulo Black** - [@paulojblack](https://github.com/paulojblack)\n\nSee also the list of [contributors](https://github.com/GoodwayGroup/gwvault/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgments\n\n* Thank you to [@pbthorste](https://github.com/pbthorste) for doing the heavy lifting on [avtool](https://github.com/pbthorste/avtool)\n\n## Sponsors\n\n[![goodwaygroup][goodwaygroup]](https://goodwaygroup.com)\n\n[goodwaygroup]: https://s3.amazonaws.com/gw-crs-assets/goodwaygroup/logos/ggLogo_sm.png \"Goodway Group\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodwaygroup%2Fgwvault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoodwaygroup%2Fgwvault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodwaygroup%2Fgwvault/lists"}