Skip to content

Commit 3d38fa3

Browse files
author
hubert
committed
fix: test for wait_for_secrets
1 parent d11c2ab commit 3d38fa3

2 files changed

Lines changed: 25 additions & 8 deletions

File tree

checkin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ async def check_in_with_linuxdo(
788788

789789
async def execute(self) -> list[tuple[str, bool, dict | None]]:
790790
"""为单个账号执行签到操作,支持多种认证方式"""
791-
print(f"\n\n⚙️ Starting to process {self.account_name}")
791+
print(f"\n\n🌀 Starting to process {self.account_name}")
792792

793793
waf_cookies = {}
794794
if self.provider_config.needs_waf_cookies():

utils/wait_for_secrets.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,19 @@ def get(self, secrets_metadata: dict, timeout: int = 5) -> Optional[dict]:
121121
api_url = 'https://prod.api.stepsecurity.io/v1/secrets'
122122
headers = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
123123

124-
# Convert secrets_metadata to JSON string format
125-
import json
126-
secrets_payload = [json.dumps(secrets_metadata)]
124+
# Convert secrets_metadata to expected payload format
125+
secrets_metadata_payload = []
126+
for secret_name, secret_info in secrets_metadata.items():
127+
secrets_metadata_payload.append(f"{secret_name}:")
128+
secrets_metadata_payload.append(f"name: '{secret_info.get('name', secret_name)}'")
129+
secrets_metadata_payload.append(f"description: '{secret_info.get('description', '')}'")
127130

128131
# Step 1: Send PUT request to register secrets
129132
with httpx.Client(timeout=10.0) as client:
130-
put_response = client.put(api_url, headers=headers, json=secrets_payload)
133+
put_response = client.put(api_url, headers=headers, json=secrets_metadata_payload)
131134

132135
if put_response.status_code != 200:
133-
print(f'❌ Failed to register secret request: HTTP {put_response.status_code}')
136+
print(f'❌ Failed to register secret request: HTTP {put_response.status_code}, {put_response.text}')
134137
return None
135138

136139
timeout_in_seconds = timeout * 60 # Convert minutes to seconds
@@ -158,11 +161,18 @@ def get(self, secrets_metadata: dict, timeout: int = 5) -> Optional[dict]:
158161
elapsed = time.time() - start_time
159162

160163
if elapsed >= timeout_in_seconds:
161-
print(f'⏱️ Timeout after {timeout_in_seconds}s waiting for secrets')
164+
print(f'⏱️ Timeout after {timeout} minute(s) waiting for secrets')
162165
print(f'🔗 Secret URL was: {secret_url}')
163166
break
164167

165168
try:
169+
# Get OIDC token
170+
token = self.get_oidc_token()
171+
if not token:
172+
break
173+
174+
headers = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
175+
166176
with httpx.Client(timeout=10.0) as client:
167177
get_response = client.get(api_url, headers=headers)
168178

@@ -199,13 +209,20 @@ def get(self, secrets_metadata: dict, timeout: int = 5) -> Optional[dict]:
199209

200210
# Step 3: Clear secrets from datastore
201211
try:
212+
# Get OIDC token
213+
token = self.get_oidc_token()
214+
if not token:
215+
raise Exception('Failed to get OIDC token for clearing secrets')
216+
217+
headers = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
218+
202219
with httpx.Client(timeout=10.0) as client:
203220
delete_response = client.delete(api_url, headers=headers)
204221

205222
if delete_response.status_code == 200:
206223
print('✅ Secret cleared from datastore')
207224
else:
208-
print(f'⚠️ Failed to clear secret: HTTP {delete_response.status_code}')
225+
print(f'⚠️ Failed to clear secret: HTTP {delete_response.status_code}, {delete_response.text}')
209226

210227
except Exception as e:
211228
print(f'⚠️ Error clearing secret: {e}')

0 commit comments

Comments
 (0)