Last active
December 21, 2024 22:11
-
-
Save mikeboiko/58ab730afd65bca0a125bc12b6f4670d to your computer and use it in GitHub Desktop.
Use bitwarden rbw as git-credential helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
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
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
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!