@@ -80,15 +80,25 @@ def get_toolbox_binary_url(toolbox_version: str) -> str:
80
80
81
81
def get_auth_token (client_id : str ) -> str :
82
82
"""Retrieves an authentication token"""
83
- request = google .auth .transport .requests .Request ()
84
- credentials = compute_engine .IDTokenCredentials (
85
- request = request ,
86
- target_audience = client_id ,
87
- use_metadata_identity_endpoint = True ,
88
- )
89
- if not credentials .valid :
90
- credentials .refresh (request )
91
- return credentials .token
83
+ try :
84
+ # Try getting the token using gcloud (for local development)
85
+ result = subprocess .run (
86
+ ["gcloud" , "auth" , "print-identity-token" ],
87
+ capture_output = True ,
88
+ text = True ,
89
+ check = True ,
90
+ )
91
+ return result .stdout .strip ()
92
+ except (subprocess .CalledProcessError , FileNotFoundError ):
93
+ request = google .auth .transport .requests .Request ()
94
+ credentials = compute_engine .IDTokenCredentials (
95
+ request = request ,
96
+ target_audience = client_id ,
97
+ use_metadata_identity_endpoint = True ,
98
+ )
99
+ if not credentials .valid :
100
+ credentials .refresh (request )
101
+ return credentials .token
92
102
93
103
94
104
#### Define Fixtures
0 commit comments