From 540cce23fa0aab436c28933144cda0237685f3b1 Mon Sep 17 00:00:00 2001 From: sudoforge <9c001b67637a@sudoforge.com> Date: Fri, 12 May 2023 22:51:04 -0700 Subject: [PATCH] feat: add support for gopass as a credential store This change adds support for `gopass` as a credential store, based on the `pass` implementation. Closes: #138 Closes: #166 Signed-off-by: sudoforge <9c001b67637a@sudoforge.com> --- .github/workflows/build.yml | 15 +++ Dockerfile | 19 +++- Makefile | 5 +- README.md | 25 ++-- gopass/cmd/main.go | 10 ++ gopass/gopass.go | 219 ++++++++++++++++++++++++++++++++++++ gopass/gopass_test.go | 82 ++++++++++++++ 7 files changed, 365 insertions(+), 10 deletions(-) create mode 100644 gopass/cmd/main.go create mode 100644 gopass/gopass.go create mode 100644 gopass/gopass_test.go diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 201281b7..60850e9a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -63,6 +63,21 @@ jobs: run: | sudo apt-get update sudo apt-get install -y dbus-x11 gnome-keyring libsecret-1-dev pass + - + name: Install gopass + if: ${{ matrix.os == 'ubuntu-20.04' }} + run: | + curl https://packages.gopass.pw/repos/gopass/gopass-archive-keyring.gpg | sudo tee /usr/share/keyrings/gopass-archive-keyring.gpg >/dev/null + cat << EOF | sudo tee /etc/apt/sources.list.d/gopass.sources + Types: deb + URIs: https://packages.gopass.pw/repos/gopass + Suites: stable + Architectures: all amd64 arm64 armhf + Components: main + Signed-By: /usr/share/keyrings/gopass-archive-keyring.gpg + EOF + sudo apt update + sudo apt install gopass gopass-archive-keyring - name: GPG conf if: ${{ matrix.os == 'ubuntu-20.04' }} diff --git a/Dockerfile b/Dockerfile index 41432719..618c1094 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,6 +69,23 @@ RUN xx-apt-get install -y binutils gcc libc6-dev libgcc-10-dev libsecret-1-dev p FROM base AS test ARG DEBIAN_FRONTEND RUN xx-apt-get install -y dbus-x11 gnome-keyring gpg-agent gpgconf libsecret-1-dev pass +RUN </dev/null + + cat <<- DEBSOURCE | sudo tee /etc/apt/sources.list.d/gopass.sources + Types: deb + URIs: https://packages.gopass.pw/repos/gopass + Suites: stable + Architectures: all amd64 arm64 armhf + Components: main + Signed-By: /usr/share/keyrings/gopass-archive-keyring.gpg + DEBSOURCE + + xx-apt-get update + xx-apt install gopass gopass-archive-keyring +EOF RUN --mount=type=bind,target=. \ --mount=type=cache,target=/root/.cache \ --mount=type=cache,target=/go/pkg/mod <