# git-secret [![Backers on Open Collective](https://opencollective.com/git-secret/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/git-secret/sponsors/badge.svg)](#sponsors) [![Build Status](https://img.shields.io/travis/sobolevn/git-secret/master.svg)](https://travis-ci.org/sobolevn/git-secret) [![Homebrew](https://img.shields.io/homebrew/v/git-secret.svg)](http://braumeister.org/formula/git-secret) [![Bintray deb](https://img.shields.io/bintray/v/sobolevn/deb/git-secret.svg)](https://bintray.com/sobolevn/deb/git-secret/view) [![git-secret](https://raw.githubusercontent.com/sobolevn/git-secret/gh-pages/images/git-secret-big.png)](http://git-secret.io/) ## What is `git-secret`? `git-secret` is a bash tool which stores private data inside a git repo. `git-secret` encrypts tracked files with public keys for all users whom you trust using `gpg`. Therefore, everyone has access to these tracked files using only their personal secret key. With `git-secret` changes to access rights is made easy and private-public key issues are avoided. Passwords do not needed changing with `git-secret` and when someone is out - just delete their public key, re-encrypt the files, and they won’t be able to decrypt secrets anymore. ## Preview [![git-secret terminal preview](https://asciinema.org/a/41811.png)](https://asciinema.org/a/41811?autoplay=1) ## Installation `git-secret` supports `brew`, just type: `brew install git-secret` It also supports `apt` and `yum`. You can also use `make` if you want to. See the [installation section](http://git-secret.io/installation) for the details. ### Requirements `git-secret` relies on several external packages: - `bash` since `3.2.57` (it is hard to tell the correct `patch` release) - `gawk` since `4.0.2` - `git` since `1.8.3.1` - `gpg` since `gnupg 1.4` to `gnupg 2.X` - `sha256sum` since `8.21` ## Contributing Do you want to help the project? Find an [issue](https://github.com/sobolevn/git-secret/issues) and send a PR. It is more than welcomed! See [CONTRIBUTING.md](CONTRIBUTING.md) on how to do that. ### Security In order to encrypt (git-secret hide -m) files only when modified, the path mappings file tracks sha256sum checksums of the files added (git-secret add) to git-secret's path mappings filesystem database. Although, the chances of encountering a sha collision are low, it is recommend that you pad files with random data for greater security. Or avoid using the `-m` option altogether. If your secret file holds more data than just a single password these precautions should not be necessary, but could be followed for greater security. If you found any security related issues, please do not enclose it in public. Send an email to `security@wemake.services` ## Changelog `git-secret` uses semver. See [CHANGELOG.md](CHANGELOG.md). ## Contributors This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. ## Backers Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/git-secret#backer)] ## Sponsors Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/git-secret#sponsor)] ## License MIT. See [LICENSE.md](LICENSE.md) for details. ## Thanks Special thanks to [Elio Qoshi](https://elioqoshi.me/sq/) from [ura](http://ura.design/) for the awesome logo.