commit a1a77b7dafc3a1119346d1673966efa8f54443c3 Author: Blaster4385 Date: Wed May 29 23:00:37 2024 +0530 Create initial credential helper 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" +