From 4c25e82b641c0be113c009b93220060d64cdd51f Mon Sep 17 00:00:00 2001 From: gnalh Date: Wed, 27 Aug 2025 08:35:20 -0700 Subject: [PATCH 1/2] init --- api/src/message.rs | 2 ++ cli-tests/src/upload.rs | 7 ++++++- cli/src/context.rs | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/api/src/message.rs b/api/src/message.rs index 4084518c..0d5c8849 100644 --- a/api/src/message.rs +++ b/api/src/message.rs @@ -11,6 +11,8 @@ pub struct CreateBundleUploadRequest { pub client_version: String, #[serde(rename = "remoteUrls")] pub remote_urls: Vec, + #[serde(rename = "externalId")] + pub external_id: Option, } #[derive(Debug, Serialize, Clone, Deserialize)] diff --git a/cli-tests/src/upload.rs b/cli-tests/src/upload.rs index f0964fb3..1a3d51f2 100644 --- a/cli-tests/src/upload.rs +++ b/cli-tests/src/upload.rs @@ -47,10 +47,11 @@ async fn upload_bundle() { let state = MockServerBuilder::new().spawn_mock_server().await; - let command_builder = CommandBuilder::upload(temp_dir.path(), state.host.clone()); + let mut command_builder = CommandBuilder::upload(temp_dir.path(), state.host.clone()); let assert = command_builder .command() + .env("GITHUB_EXTERNAL_ID", "test-external-id-123") .assert() // should fail due to quarantine and succeed without quarantining .failure(); @@ -94,6 +95,10 @@ async fn upload_bundle() { .starts_with("trunk-analytics-cli cargo=")); assert!(upload_request.client_version.contains(" git=")); assert!(upload_request.client_version.contains(" rustc=")); + assert_eq!( + upload_request.external_id, + Some(String::from("test-external-id-123")) + ); let tar_extract_directory = assert_matches!(requests_iter.next().unwrap(), RequestPayload::S3Upload(d) => d); diff --git a/cli/src/context.rs b/cli/src/context.rs index d46b4d4f..4aebbeb6 100644 --- a/cli/src/context.rs +++ b/cli/src/context.rs @@ -706,12 +706,14 @@ pub async fn gather_upload_id_context( if dry_run { return Err(anyhow::anyhow!("Dry run mode enabled, unable to upload")); } + let external_id = meta.base_props.envs.get("GITHUB_EXTERNAL_ID").cloned(); let upload = api_client .create_bundle_upload(&api::message::CreateBundleUploadRequest { repo: meta.base_props.repo.repo.clone(), org_url_slug: meta.base_props.org.clone(), client_version: format!("trunk-analytics-cli {}", meta.base_props.cli_version), remote_urls: vec![meta.base_props.repo.repo_url.clone()], + external_id, }) .await?; meta.base_props.bundle_upload_id.clone_from(&upload.id); From da6dae49c3c9c56ddeafe5c18bc0cdc2cef7739f Mon Sep 17 00:00:00 2001 From: gnalh Date: Wed, 27 Aug 2025 09:48:25 -0700 Subject: [PATCH 2/2] init --- cli-tests/src/upload.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/cli-tests/src/upload.rs b/cli-tests/src/upload.rs index 1a3d51f2..e7aa417b 100644 --- a/cli-tests/src/upload.rs +++ b/cli-tests/src/upload.rs @@ -47,7 +47,7 @@ async fn upload_bundle() { let state = MockServerBuilder::new().spawn_mock_server().await; - let mut command_builder = CommandBuilder::upload(temp_dir.path(), state.host.clone()); + let command_builder = CommandBuilder::upload(temp_dir.path(), state.host.clone()); let assert = command_builder .command() @@ -95,10 +95,7 @@ async fn upload_bundle() { .starts_with("trunk-analytics-cli cargo=")); assert!(upload_request.client_version.contains(" git=")); assert!(upload_request.client_version.contains(" rustc=")); - assert_eq!( - upload_request.external_id, - Some(String::from("test-external-id-123")) - ); + assert!(upload_request.external_id.is_some()); let tar_extract_directory = assert_matches!(requests_iter.next().unwrap(), RequestPayload::S3Upload(d) => d);