Skip to content

Instantly share code, notes, and snippets.

@mikeboiko
Last active September 30, 2025 07:11
Show Gist options
  • Select an option

  • Save mikeboiko/58ab730afd65bca0a125bc12b6f4670d to your computer and use it in GitHub Desktop.

Select an option

Save mikeboiko/58ab730afd65bca0a125bc12b6f4670d to your computer and use it in GitHub Desktop.
Use bitwarden rbw as git-credential helper
#!/usr/bin/env 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
@ivankovnatsky
Copy link
Copy Markdown

I didn't realize that rbw had a helper in the repo. You should probably use that.

they added it some time after, and I did not like their implementation, too weird for my taste 😄

@modem7
Copy link
Copy Markdown

modem7 commented Aug 9, 2022

@modem7, yea I agree with what @ivankovnatsky stated. I didn't realize that rbw had a helper in the repo. You should probably use that. I recently switched to gh for my GitHub authentication. I still use rbw for my BitBucket repos. I tested changing my GitHub password in bitwarden to my GitHub Personal Access Token, and my helper worked properly.

Aye, the GH client seems to work quite nicely tbf! I was mostly seeing if RBW had a better use case, but I think for me, probably not!

@quul
Copy link
Copy Markdown

quul commented Jul 25, 2023

For macOS users, due to the bash version in macOS is still 3.2(at least before Ventura 13.2.1) and not supported declare -A command.
A workaround for this is follow the steps above:
Install a newer bash via homebrew or anything else and then change shebang to #!/usr/bin/env bash

@mikeboiko
Copy link
Copy Markdown
Author

For macOS users, due to the bash version in macOS is still 3.2(at least before Ventura 13.2.1) and not supported declare -A command. A workaround for this is follow the steps above: Install a newer bash via homebrew or anything else and then change shebang to #!/usr/bin/env bash

Ahh yes, good call. When I was using a mac, I got around this issue by installing the latest bash version from homebrew.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment