@@ -132,6 +132,9 @@ def __init__(
132
132
133
133
self .user_id = user_id
134
134
135
+ # TODO: remove once done debugging expired github token
136
+ self .prev_token : SecretStr | None = None
137
+
135
138
def setup_initial_env (self ) -> None :
136
139
if self .attach_to_existing :
137
140
return
@@ -224,20 +227,45 @@ async def _handle_action(self, event: Action) -> None:
224
227
gh_client = GithubServiceImpl (
225
228
external_auth_id = self .user_id , external_token_manager = True
226
229
)
230
+ logger .info (f'Fetching latest github token for runtime: { self .sid } ' )
227
231
token = await gh_client .get_latest_token ()
228
- if token :
229
- export_cmd = CmdRunAction (
230
- f"export GITHUB_TOKEN=' { token . get_secret_value () } '"
232
+ if not token :
233
+ logger . error (
234
+ f'Failed to refresh github token for runtime: { self . sid } '
231
235
)
232
236
237
+ if token :
238
+ raw_token = token .get_secret_value ()
239
+
240
+ if not self .prev_token :
241
+ logger .info (
242
+ f'Setting github token in runtime: { self .sid } \n Token value: { raw_token [0 :5 ]} ; length: { len (raw_token )} '
243
+ )
244
+
245
+ elif self .prev_token .get_secret_value () != raw_token :
246
+ logger .info (
247
+ f'Setting new github token in runtime { self .sid } \n Token value: { raw_token [0 :5 ]} ; length: { len (raw_token )} '
248
+ )
249
+
250
+ self .prev_token = token
251
+
252
+ env_vars = {
253
+ 'GITHUB_TOKEN' : raw_token ,
254
+ }
255
+
256
+ try :
257
+ self .add_env_vars (env_vars )
258
+ except Exception as e :
259
+ logger .warning (
260
+ f'Failed export latest github token to runtime: { self .sid } , { e } '
261
+ )
262
+
233
263
self .event_stream .update_secrets (
234
264
{
235
- 'github_token' : token . get_secret_value () ,
265
+ 'github_token' : raw_token ,
236
266
}
237
267
)
238
268
239
- await call_sync_from_async (self .run , export_cmd )
240
-
241
269
observation : Observation = await call_sync_from_async (
242
270
self .run_action , event
243
271
)
0 commit comments