Skip to content

Commit 06e8c4d

Browse files
authored
[Debug]: Add logs to runtime to assess root cause of expired github token (#7331)
1 parent e252174 commit 06e8c4d

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

Diff for: openhands/runtime/base.py

+34-6
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ def __init__(
132132

133133
self.user_id = user_id
134134

135+
# TODO: remove once done debugging expired github token
136+
self.prev_token: SecretStr | None = None
137+
135138
def setup_initial_env(self) -> None:
136139
if self.attach_to_existing:
137140
return
@@ -224,20 +227,45 @@ async def _handle_action(self, event: Action) -> None:
224227
gh_client = GithubServiceImpl(
225228
external_auth_id=self.user_id, external_token_manager=True
226229
)
230+
logger.info(f'Fetching latest github token for runtime: {self.sid}')
227231
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}'
231235
)
232236

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}\nToken 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}\nToken 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+
233263
self.event_stream.update_secrets(
234264
{
235-
'github_token': token.get_secret_value(),
265+
'github_token': raw_token,
236266
}
237267
)
238268

239-
await call_sync_from_async(self.run, export_cmd)
240-
241269
observation: Observation = await call_sync_from_async(
242270
self.run_action, event
243271
)

0 commit comments

Comments
 (0)