From 913505516dc899346ce763f55693b7ac6c77bce6 Mon Sep 17 00:00:00 2001 From: Blaster4385 Date: Wed, 29 May 2024 23:00:37 +0530 Subject: Create initial credential helper --- git-credential-gbw | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 git-credential-gbw diff --git a/git-credential-gbw b/git-credential-gbw new file mode 100755 index 0000000..f9d9db3 --- /dev/null +++ b/git-credential-gbw @@ -0,0 +1,49 @@ +#!/bin/bash + +# Function to fetch username and password from Bitwarden +get_credentials() { + local item_name=$1 + + # Fetch the login item + item=$(bw get item "$item_name" --session "$BW_SESSION") + + # Extract username and password + username=$(echo "$item" | jq -r '.login.username') + password=$(echo "$item" | jq -r '.login.password') + + echo -e "username=$username\npassword=$password" +} + +# Main logic to handle Git credential helper protocol +while read -r line; do + case "$line" in + protocol=*) + protocol=${line#protocol=} + ;; + host=*) + host=${line#host=} + ;; + username=*) + username=${line#username=} + ;; + password=*) + password=${line#password=} + ;; + *) + ;; + esac +done + +if [ -z "$protocol" ] || [ -z "$host" ]; then + exit 1 +fi + +# Define your Bitwarden item name +ITEM_NAME="$host" + +# Fetch the credentials +credentials=$(get_credentials "$ITEM_NAME") + +# Output the credentials in the format Git expects +echo "$credentials" + -- cgit v1.2.3-73-gaa49b