The experimental functions are now available in the standard library
in Go 1.23 [1].
[1]: https://go.dev/doc/go1.23#new-unique-package
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* Do not decrypt secrets when moving or copying them
This PR attempts to avoid decrypting secrets needlessly when they are
only copied or moved. All currently supported backends have a filesystem
backing them so the old workaround of Get and Set shouldn't be necessary
anymore. In case we re-introduce such backends or a direct move fails
for some reason we still fall back to Get and Set if necessary.
Fixes#2181
RELEASE_NOTES=[ENHANCEMENT] Avoid decryption on move or copy
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
* Fix lint issues
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
* Add debug log statements
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit adds a new subcommand to support symlinks within the same
mount. The command is intentionally still hidden since the support
isn't fully fleshed out, yet. Neither audit nor list know of links
and cross mount symlinks aren't supported either (and maybe never will).
RELEASE_NOTES=[ENHANCEMENT] Add gopass ln
Fixes#1820
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This PR adds a small release helper along with some documentation.
This should allow anyone with sufficient permissions to cut and push new
releases.
Fixes#1298
RELEASE_NOTES=n/a
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This PR moves some packages from internal to pkg to increase the
independence of binaries in cmd/ from internal packages further.
RELEASE_NOTES=n/a
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit introduces a new MIME-based secrets format that will
eventually replace any existing secret format.
Fixes#1310
RELEASE_NOTES=[BREAKING] New secrets format.
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit slightly rewrites the tree implementation and removes
another unnecessary indirection.
RELEASE_NOTES=[ENHANCEMENT] Rewrite tree implementation.
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit adds a new debug package to gopass.
It is heavily inspired by github.com/restic/restic/internal/debug
and adapted for the gopass use case.
This change allows to further trim down the source code since the
new package doesn't propagate the debug flag in the context anymore.
As such we can now omit passing ctx in most places.
In order to ensure we don't accidentially keep passing ununsed
parameters we also introduce unparam to check for extra arguments.
RELEASE_NOTES=[ENHANCEMENT] New Debug package
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit removes the unnecessary store.Store interface and renames
store/sub to the more apt store/leaf.
RELEASE_NOTES=n/a
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
This commit contains the initial draft of the gopass API.
Design and implementation of the API are work in progress - even after
this PR has been merged. Feedback welcome but please use with caution.
Expect breaking changes to the API. Especially once we redesign the
secrets implementation.
Fixes#1379
RELEASE_NOTES=[ENHANCEMENT] Add gopass API (unstable)
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>