MCPcopy
hub / github.com/codeaashu/claude-code / uploadUserSettings

Function uploadUserSettings

src/services/settingsSync/index.ts:347–392  ·  view source on GitHub ↗
(
  entries: Record<string, string>,
)

Source from the content-addressed store, hash-verified

345}
346
347async function uploadUserSettings(
348 entries: Record<string, string>,
349): Promise<SettingsSyncUploadResult> {
350 try {
351 await checkAndRefreshOAuthTokenIfNeeded()
352
353 const authHeaders = getSettingsSyncAuthHeaders()
354 if (authHeaders.error) {
355 return {
356 success: false,
357 error: authHeaders.error,
358 }
359 }
360
361 const headers: Record<string, string> = {
362 ...authHeaders.headers,
363 'User-Agent': getClaudeCodeUserAgent(),
364 'Content-Type': 'application/json',
365 }
366
367 const endpoint = getSettingsSyncEndpoint()
368 const response = await axios.put(
369 endpoint,
370 { entries },
371 {
372 headers,
373 timeout: SETTINGS_SYNC_TIMEOUT_MS,
374 },
375 )
376
377 logForDiagnosticsNoPII('info', 'settings_sync_uploaded', {
378 entryCount: Object.keys(entries).length,
379 })
380 return {
381 success: true,
382 checksum: response.data?.checksum,
383 lastModified: response.data?.lastModified,
384 }
385 } catch (error) {
386 logForDiagnosticsNoPII('warn', 'settings_sync_upload_error')
387 return {
388 success: false,
389 error: error instanceof Error ? error.message : 'Unknown error',
390 }
391 }
392}
393
394/**
395 * Try to read a file for sync, with size limit and error handling.

Callers 1

Calls 7

getClaudeCodeUserAgentFunction · 0.85
getSettingsSyncEndpointFunction · 0.85
logForDiagnosticsNoPIIFunction · 0.85
putMethod · 0.80
keysMethod · 0.80

Tested by

no test coverage detected