## 1. Project Overview & Quickstart (gopasspw/A-12-pkg-api-stability) ### README # gopass website **This document contains the static website sources for gopass and instructions for contributors on how to create new releases**. ## Releasing gopass ### Overview * Preparation (install goreleaser, clone repos) * Update CHANGELOG.md/VERSION * Commit/Tag - DO NOT PUSH YET * Test build (`goreleaser --skip-publish`) * Push git changes * Final build (`goreleaser`) * Update and deploy website ### Preparation (only once) ```bash # Install our modified version of goreleaser go get -u github.com/goreleaser/goreleaser cd $GOPATH/src/github.com/goreleaser/goreleaser git remote add gopass git@github.com:gopasspw/goreleaser.git git fetch gopass git checkout gopass git pull gopass gopass go install ``` ### Releasing a major/minor release (i.e. increasing X or Y in X.Y.Z) This is the regular release process. We develop new feature and fixes in feature branches (usually called `feature/some-fancy-feature` for features or `fix/issue-XYZ` where XYZ matches the number of an existing issue) IN YOUR OWN FORK OF THE REPO. Please DO NOT push any branches to the main gopass repo except `release-X.Y` branches. ```bash cd $GOPATH/src/github.com/gopasspw/gopass go build && make tests && make test-integration # update CHANGELOG.md and VERSION in ONE COMMIT git commit -am'Tag X.Y.Z+1' git tag -s v1.X.Y make completion goreleaser --skip-publish git push origin v1.X.Y GITHUB_TOKEN=XXX goreleaser # add `--prerelease` for any RC / pre-release # update gopass website ``` Afterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it. ### Releasing a patch release (i.e. increasing Z in X.Y.Z) If we need to release a patch release and can't base this upon master because there have been changes which should not be included in the patch release (e.g. new features) we need to summon a new release branch from a past release tag. Then we'd cherry-pick or port the required fixes to this branch and create a release from there. General rule for cherry-picking: * Keep the changes small and self contained * Squashed commits per Feature help very much (one commit per fix/feature) * Keep the order ``` git checkout vX.Y.Z git checkout -b release-X.Y git cherry-pick ABC git cherry-pick DEF git cherry-pick FFF go build && make tests && make test-integration # update CHANGELOG.md and VERSION in ONE COMMIT git commit -am'Tag X.Y.Z+1' git tag -s vX.Y.Z+1 goreleaser --skip-publish git push origin vX.Y.Z+1 GITHUB_TOKEN=abc... goreleaser git push origin release-X.Y # update gopass website ``` Afterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it. ## Theme Development - Go to `/themes/gopass`, - install dependencies via `npm install` - run `gulp watch` to develop locally (with auto-reload) - start a server via `make dev` (`hugo serve -b localhost:1313`) (in the root dir) --- ## 2. Official Technical Reference & Guides (gopasspw/docs) ## File: README.md # gopass website **This document contains the static website sources for gopass and instructions for contributors on how to create new releases**. ## Releasing gopass ### Overview * Preparation (install goreleaser, clone repos) * Update CHANGELOG.md/VERSION * Commit/Tag - DO NOT PUSH YET * Test build (`goreleaser --skip-publish`) * Push git changes * Final build (`goreleaser`) * Update and deploy website ### Preparation (only once) ```bash # Install our modified version of goreleaser go get -u github.com/goreleaser/goreleaser cd $GOPATH/src/github.com/goreleaser/goreleaser git remote add gopass git@github.com:gopasspw/goreleaser.git git fetch gopass git checkout gopass git pull gopass gopass go install ``` ### Releasing a major/minor release (i.e. increasing X or Y in X.Y.Z) This is the regular release process. We develop new feature and fixes in feature branches (usually called `feature/some-fancy-feature` for features or `fix/issue-XYZ` where XYZ matches the number of an existing issue) IN YOUR OWN FORK OF THE REPO. Please DO NOT push any branches to the main gopass repo except `release-X.Y` branches. ```bash cd $GOPATH/src/github.com/gopasspw/gopass go build && make tests && make test-integration # update CHANGELOG.md and VERSION in ONE COMMIT git commit -am'Tag X.Y.Z+1' git tag -s v1.X.Y make completion goreleaser --skip-publish git push origin v1.X.Y GITHUB_TOKEN=XXX goreleaser # add `--prerelease` for any RC / pre-release # update gopass website ``` Afterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it. ### Releasing a patch release (i.e. increasing Z in X.Y.Z) If we need to release a patch release and can't base this upon master because there have been changes which should not be included in the patch release (e.g. new features) we need to summon a new release branch from a past release tag. Then we'd cherry-pick or port the required fixes to this branch and create a release from there. General rule for cherry-picking: * Keep the changes small and self contained * Squashed commits per Feature help very much (one commit per fix/feature) * Keep the order ``` git checkout vX.Y.Z git checkout -b release-X.Y git cherry-pick ABC git cherry-pick DEF git cherry-pick FFF go build && make tests && make test-integration # update CHANGELOG.md and VERSION in ONE COMMIT git commit -am'Tag X.Y.Z+1' git tag -s vX.Y.Z+1 goreleaser --skip-publish git push origin vX.Y.Z+1 GITHUB_TOKEN=abc... goreleaser git push origin release-X.Y # update gopass website ``` Afterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it. ## Theme Development - Go to `/themes/gopass`, - install dependencies via `npm install` - run `gulp watch` to develop locally (with auto-reload) - start a server via `make dev` (`hugo serve -b localhost:1313`) (in the root dir) --- ## File: content/docs.md +++ date = "2018-01-18T17:39:54+01:00" title = "docs" +++ ## Table of Contents 1. [Abstract](#abstract) 2. [Demo](#demo) 3. [Features](#features) 4. [Installation](#installation) 5. [Development](#development) 6. [Credit & License](#credit-&-license) 7. [Community](#community) 8. [Contributing](#contributing) 9. [Acknowledgements](#acknowledgements) 10. [Further Documentation](#further-documentation) ## Abstract > Password management should be simple and follow [Unix philosophy](http://en.wikipedia.org/wiki/Unix_philosophy). With `pass`, each secret lives inside of a `gpg` encrypted file whose filename is the title of the website or resource that requires the secret. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities. - [passwordstore.org](https://www.passwordstore.org/) *gopass* is a rewrite of the *pass* password manager in [Go](https://golang.org/) with the aim of making it cross-platform and [adding additional features](#features). Our target audience are professional developers and sysadmins (and especially teams of those) who are well versed with a command line interface. One explicit goal for this project is to make it more approachable to non-technical users. We go by the UNIX philosophy and try to do one thing and do it well, providing a stellar user experience and a sane, simple interface. ## Demo [](https://asciinema.org/a/101688) ## Features Please see [docs/features.md](https://github.com/gopasspw/gopass/blob/master/docs/features.md) for an extensive list of all features along with several usage examples. | **Feature** | *pass* | *gopass* | **State** | **Description** | | --------------------------- | ------ | -------- | --------- | ----------------------------------------------------------------- | | Secure secret storage | ✔ | ✔ | *stable* | Securely storing secrets encrypted with GPG | | Recipient management | ❌ | ✔ | *beta* | Easily manage multiple users of each store | | Multiple stores | ❌ | ✔ | *beta* | Mount multiple stores in your root store, like file systems | | password quality assistance | ❌ | ✔ | *beta* | Checks existing or new passwords for common flaws | | Binary support | ❌ | ✔ | *alpha* | Special handling of binary files (automatic Base64 encoding) | | YAML support | ❌ | ✔ | *alpha* | Special handling for YAML content in secrets | | password leak checker | ❌ | ✔ | *alpha* | Perform **offline** checks against known leaked passwords | | PAGER support | ❌ | ✔ | *stable* | Automatically invoke a pager on long output | | JSON API | ❌ | ✔ | *alpha* | Allow gopass to be used as a native extension for browser plugins | | Automatic fuzzy search | ❌ | ✔ | *stable* | Automatically search for matching store entries if a literal entry was not found | | gopass sync | ❌ | ✔ | *beta* | Easy to use syncing of remote repos and GPG keys | | Desktop Notifications | ❌ | ✔ | *beta* | [Linux only] Display desktop notifications and completing long running operations | ## Installation If you have [Go](https://golang.org/) installed: ```bash go get github.com/gopasspw/gopass ``` Otherwise, please see [docs/setup.md](https://github.com/gopasspw/gopass/blob/master/docs/setup.md). ## Development This project uses [GitHub Flow](https://guides.github.com/introduction/flow/). In other words, create feature branches from master, open an PR against master, and rebase onto master if necessary. We aim for compatibility with the [latest stable Go Release](https://golang.org/dl/) only. ## Credit & License gopass is maintained by the nice folks from [JustWatch](https://www.justwatch.com/gopass) and licensed under the terms of the MIT license. Maintainers of this repository: * Matthias Loibl [@metalmatze](https://github.com/metalmatze) * Dominik Schulz [@dominikschulz](https://github.com/dominikschulz) Please refer to the Git commit log for a complete list of contributors. ## Community gopass is developed in the open. Here are some of the channels we use to communicate and contribute: * IRC: #gopass on [irc.freenode.net](https://freenode.net) ([join via Riot](https://riot.im/app/#/room/#freenode_#gopass:matrix.org)) * Usage mailing list: [gopass-users](https://groups.google.com/forum/#!forum/gopass-users), for discussions around gopass usage and community support * Issue tracker: Use the [GitHub issue tracker](https://github.com/gopasspw/gopass/issues) to file bugs and feature requests. If you need support, please send your questions to [gopass-user](https://groups.google.com/forum/#!forum/gopass-users) or ask on IRC rather than filing a GitHub issue. ## Contributing We welcome any contributions. Please see the [CONTRIBUTING.md](https://github.com/gopasspw/gopass/blob/master/CONTRIBUTING.md) file for instructions on how to submit changes. If your are planning on making more elaborate or controversial changes, please discuss them on the [gopass-developers mailing list](https://groups.google.com/forum/#!forum/gopass-developers) or on IRC before sending a pull request. ## Acknowledgements gopass was initially started by Matthias Loibl and Dominik Schulz. The majority of its development has been sponsored by [JustWatch](https://www.justwatch.com/). ## Further Documentation * [Features and usage](https://github.com/gopasspw/gopass/blob/master/docs/features.md) * [Security, Known Limitations, and Caveats](https://github.com/gopasspw/gopass/blob/master/docs/security.md) * [Configuration](https://github.com/gopasspw/gopass/blob/master/docs/config.md) * [FAQ](https://github.com/gopasspw/gopass/blob/master/docs/faq.md) * [JSON API](https://github.com/gopasspw/gopass/blob/master/docs/jsonapi.md) * [Gopass as Summon provider](https://github.com/gopasspw/gopass/blob/master/docs/summon-provider.md) --- ## File: content/faq.md +++ date = "2017-02-01T17:39:42+01:00" title = "faq" +++ # FAQ ## error: gpg failed to sign the data On macOS upgrading gnupg can lead to Git commit signing [breaking](https://nathanielhoag.com/blog/2016/09/05/signing-commits-in-git/). Be sure to have `pinentry-mac` installed, set gpg.program to gpg2 and add the `no-tty` option to your gpg.conf. ``` brew install pinentry-mac git config --global gpg.program $(which gpg2) echo "no-tty" >>~/.gnupg/gpg.conf ``` ## What's up with the cute gopher? Our [gopher](https://blog.golang.org/gopher) was made by [Vincent Leinweber](http://vincentleinweber.net/) while the original gopher is created by [Renee French](http://reneefrench.blogspot.com). And our gopher is tilting around when you hover over it thanks to [tilt.js](http://gijsroge.github.io/tilt.js/)!