-
-
Save mikeboiko/58ab730afd65bca0a125bc12b6f4670d to your computer and use it in GitHub Desktop.
#!/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 |
i was going to use in nixos, but we have no
#!/bin/bash
path, can you please change it to:#!/usr/bin/env bash
Sure no problem. Glad you found the script useful.
i can now reference your raw file, thanks a lot! i also moved from bw to rbw meanwhile 👍
Yea rbw is much better!
Heya,
Probably an ID10T issue, but I'm getting:
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
Not quite sure where I've gone wrong.
git config --global --edit
[credential]
helper = rbw
Script location:
/usr/bin/git-credential-rbw
Hey, rbw upstream got itself a helper by the way: https://github.com/doy/rbw/blob/master/bin/git-credential-rbw, scripts are almost the same, though.
You probably need to generate an API token to use in your vault item: github.com / [token]
❯ rbw ls|rg 'https://github.com'
https://github.com
@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.
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, 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!
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
.
i was going to use in nixos, but we have no
#!/bin/bash
path, can you please change it to:#!/usr/bin/env bash