feat(FN-2625): merge fusion/fn-2625

This commit is contained in:
gsxdsm
2026-04-26 21:36:23 -07:00
parent a6ddce1a11
commit 39ff80d540
7 changed files with 140 additions and 1 deletions

View File

@@ -1059,6 +1059,19 @@ describe.skip("fn pi extension", () => {
"api",
"repos/acme/demo/issues?state=open&per_page=5",
]);
const store = new TaskStore(tmpDir, join(tmpDir, ".fusion-global-settings"));
await store.init();
const tasks = await store.listTasks({ includeArchived: true });
expect(tasks).toHaveLength(2);
const issueOneTask = tasks.find((task) => task.sourceIssue?.issueNumber === 1);
expect(issueOneTask?.sourceIssue).toEqual({
provider: "github",
repository: "acme/demo",
externalIssueId: "1",
issueNumber: 1,
url: "https://github.com/acme/demo/issues/1",
});
});
it("fn_task_browse_github_issues lists issues via gh api", async () => {

View File

@@ -922,12 +922,26 @@ describe("runTaskImportGitHubInteractive", () => {
description: "Description 1\n\nSource: https://github.com/owner/repo/issues/1",
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "1",
issueNumber: 1,
url: "https://github.com/owner/repo/issues/1",
},
});
expect(mockCreateTask).toHaveBeenCalledWith({
title: "Third Issue",
description: "Description 3\n\nSource: https://github.com/owner/repo/issues/3",
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "3",
issueNumber: 3,
url: "https://github.com/owner/repo/issues/3",
},
});
});
@@ -978,6 +992,13 @@ describe("runTaskImportGitHubInteractive", () => {
description: "Description 2\n\nSource: https://github.com/owner/repo/issues/2",
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "2",
issueNumber: 2,
url: "https://github.com/owner/repo/issues/2",
},
});
const skipLine = logSpy.mock.calls.find(
@@ -1224,6 +1245,13 @@ describe("runTaskImportFromGitHub", () => {
description: "Description 1\n\nSource: https://github.com/owner/repo/issues/1",
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "1",
issueNumber: 1,
url: "https://github.com/owner/repo/issues/1",
},
});
const successLine = logSpy.mock.calls.find(
@@ -1299,6 +1327,13 @@ describe("runTaskImportFromGitHub", () => {
description: "(no description)\n\nSource: https://github.com/owner/repo/issues/1",
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "1",
issueNumber: 1,
url: "https://github.com/owner/repo/issues/1",
},
});
});
@@ -1313,6 +1348,13 @@ describe("runTaskImportFromGitHub", () => {
description: expect.stringContaining("Body"),
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: "owner/repo",
externalIssueId: "1",
issueNumber: 1,
url: "https://github.com/owner/repo/issues/1",
},
});
});
});

View File

@@ -820,6 +820,13 @@ export async function runTaskImportGitHubInteractive(
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
});
const label = task.title || task.description.slice(0, 60) + (task.description.length > 60 ? "…" : "");
@@ -956,6 +963,13 @@ export async function runTaskImportFromGitHub(
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
});
const label = task.title || task.description.slice(0, 60) + (task.description.length > 60 ? "…" : "");

View File

@@ -801,6 +801,13 @@ export default function kbExtension(pi: ExtensionAPI) {
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
});
await store.logEntry(task.id, "Imported from GitHub", sourceUrl);
@@ -887,6 +894,13 @@ export default function kbExtension(pi: ExtensionAPI) {
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
});
await store.logEntry(task.id, "Imported from GitHub", sourceUrl);