Skip to content

Commit 1f13450

Browse files
feat: send repositories array to PostHog API for multi-repo tasks
Wire the client to send the new `repositories` array format when creating multi-repo tasks. Single-repo tasks still use the legacy `repository` string for backward compat. - posthogClient.createTask: accepts `repositories` field - TaskCreationSaga.createTask: detects additional repos, sends repositories array when multiple repos are present - duplicateTask: preserves repositories array Generated-By: PostHog Code Task-Id: 230ec8e6-6781-43b4-ae30-ea24faa410dc
1 parent d7f5279 commit 1f13450

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

apps/code/src/renderer/api/posthogClient.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,7 @@ export class PostHogAPIClient {
444444
Task,
445445
| "title"
446446
| "repository"
447+
| "repositories"
447448
| "json_schema"
448449
| "origin_product"
449450
| "signal_report"
@@ -490,7 +491,9 @@ export class PostHogAPIClient {
490491
return this.createTask({
491492
description: task.description ?? "",
492493
title: task.title,
493-
repository: task.repository,
494+
// Use repositories array if available, fall back to legacy field
495+
repositories: task.repositories,
496+
repository: task.repositories?.length ? undefined : task.repository,
494497
json_schema: task.json_schema,
495498
origin_product: task.origin_product,
496499
github_integration: task.github_integration,

apps/code/src/renderer/sagas/task/task-creation.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,12 +443,37 @@ export class TaskCreationSaga extends Saga<
443443
}
444444
}
445445

446+
// Detect additional repos for multi-repo tasks
447+
const additionalRepoNames: string[] = [];
448+
if (input.additionalRepos) {
449+
for (const repo of input.additionalRepos) {
450+
const detected = await trpcClient.git.detectRepo.query({
451+
directoryPath: repo.repoPath,
452+
});
453+
if (detected) {
454+
additionalRepoNames.push(
455+
`${detected.organization}/${detected.repository}`,
456+
);
457+
}
458+
}
459+
}
460+
461+
// Use repositories array when we have multiple repos
462+
const hasMultipleRepos = repository && additionalRepoNames.length > 0;
463+
446464
return this.step({
447465
name: "task_creation",
448466
execute: async () => {
449467
const result = await this.deps.posthogClient.createTask({
450468
description: input.content ?? "",
451-
repository: repository ?? undefined,
469+
// Send repositories array for multi-repo, legacy field for single-repo
470+
repositories: hasMultipleRepos
471+
? [
472+
{ repository: repository! },
473+
...additionalRepoNames.map((r) => ({ repository: r })),
474+
]
475+
: undefined,
476+
repository: hasMultipleRepos ? undefined : (repository ?? undefined),
452477
github_integration:
453478
input.workspaceMode === "cloud"
454479
? input.githubIntegrationId

0 commit comments

Comments
 (0)