From 87d1b84cb88cdda0c70c9d03b48697e9f8259337 Mon Sep 17 00:00:00 2001 From: Peter Kurfer Date: Wed, 20 Dec 2023 14:53:36 +0100 Subject: [PATCH] chore: add Bitwarden credentials helper --- .../bin/executable_git-credential-rbw | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 private_dot_local/bin/executable_git-credential-rbw diff --git a/private_dot_local/bin/executable_git-credential-rbw b/private_dot_local/bin/executable_git-credential-rbw new file mode 100644 index 0000000..e6f9bbb --- /dev/null +++ b/private_dot_local/bin/executable_git-credential-rbw @@ -0,0 +1,47 @@ +#!/opt/homebrew/Cellar/bash/5.2.21/bin/bash + +# rbw git-credential helper +# Based on https://github.com/lastpass/lastpass-cli/blob/master/contrib/examples/git-credential-lastpass + +# A credential helper for git to retrieve usernames and passwords from rbw. +# For general usage, see https://git-scm.com/docs/gitcredentials. +# Here's a quick version: +# 1. Put this somewhere in your path. +# 2. git config --global credential.helper rbw + +declare -A params + +if [ "x$1" == "xget" ]; then + read line + while [ -n "$line" ]; do + key=${line%%=*} + value=${line#*=} + params[$key]=$value + read line + done + + if [ "x${params['protocol']}" != "xhttps" ]; then + exit + fi + + if [ -z "${params["host"]}" ]; then + exit + fi + + rbw ls > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Please login to rbw to use git credential helper" > /dev/stderr + exit + fi + + user=`rbw get --full ${params["host"]} | grep "Username:" | cut -d' ' -f2-` + pass=`rbw get ${params["host"]}` + + if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then + echo "Couldn't find host in rbw DB." > /dev/stderr + exit + fi + + echo username=$user + echo password=$pass +fi