@@ -28,18 +28,25 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
2828 resource=" "
2929 scope=" "
3030 resource_type=" "
31+ query=" "
32+ output_format=" "
3133 prev=" "
3234
3335 for arg in " ${@: 3} " ; do
3436 case " $arg " in
3537 --resource=* ) resource=" ${arg# --resource=} " ;;
3638 --scope=* ) scope=" ${arg# --scope=} " ;;
3739 --resource-type=* ) resource_type=" ${arg# --resource-type=} " ;;
40+ --query=* ) query=" ${arg# --query=} " ;;
41+ --output=* ) output_format=" ${arg# --output=} " ;;
42+ -o=* ) output_format=" ${arg# -o=} " ;;
3843 * )
3944 case " $prev " in
4045 --resource) resource=" $arg " ;;
4146 --scope) scope=" $arg " ;;
4247 --resource-type) resource_type=" $arg " ;;
48+ --query|-q) query=" $arg " ;;
49+ --output|-o) output_format=" $arg " ;;
4350 esac
4451 ;;
4552 esac
@@ -51,6 +58,11 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
5158 resource=" ${RESOURCE_TYPE_MAP[$resource_type]} "
5259 fi
5360
61+ # Default to Azure DevOps resource if no resource or scope specified
62+ if [[ -z " $resource " && -z " $scope " ]]; then
63+ resource=" 499b84ac-1321-427f-aa17-267ca6975798"
64+ fi
65+
5466 # Determine the scope to request
5567 request_scope=" "
5668 if [[ -n " $scope " ]]; then
@@ -67,6 +79,18 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
6779 if [[ -n " $request_scope " && -f " ${HOME} /azure-auth-helper" ]]; then
6880 token=$( " ${HOME} /azure-auth-helper" get-access-token " $request_scope " 2> /dev/null)
6981 if [[ $? -eq 0 && -n " $token " ]]; then
82+ # Handle --query accessToken for direct token extraction
83+ if [[ " $query " == " accessToken" ]]; then
84+ if [[ " $output_format " == " tsv" ]]; then
85+ echo " $token "
86+ else
87+ escaped_token=" ${token// \\ / \\\\ } "
88+ escaped_token=" ${escaped_token// \" / \\\" } "
89+ echo " \" $escaped_token \" "
90+ fi
91+ exit 0
92+ fi
93+
7094 # Escape token for safe JSON embedding (handle backslashes and quotes)
7195 escaped_token=" ${token// \\ / \\\\ } "
7296 escaped_token=" ${escaped_token// \" / \\\" } "
0 commit comments