Skip to content

Commit 0378577

Browse files
committed
Do not group by repository node if only one repository open in workspace
1 parent 8d1046f commit 0378577

File tree

4 files changed

+57
-35
lines changed

4 files changed

+57
-35
lines changed

src/treeViews/settings.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import * as vscode from "vscode";
2-
import { getGitHubContext } from "../git/repository";
2+
3+
import { SettingsRepoNode, getSettingNodes } from "./settings/settingsRepoNode";
4+
35
import { EnvironmentNode } from "./settings/environmentNode";
46
import { EnvironmentsNode } from "./settings/environmentsNode";
57
import { OrgSecretsNode } from "./settings/orgSecretsNode";
68
import { RepoSecretsNode } from "./settings/repoSecretsNode";
79
import { SecretsNode } from "./settings/secretsNode";
810
import { SelfHostedRunnersNode } from "./settings/selfHostedRunnersNode";
9-
import { SettingsRepoNode } from "./settings/settingsRepoNode";
1011
import { SettingsExplorerNode } from "./settings/types";
12+
import { getGitHubContext } from "../git/repository";
1113

1214
export class SettingsTreeProvider
1315
implements vscode.TreeDataProvider<SettingsExplorerNode>
@@ -36,6 +38,10 @@ export class SettingsTreeProvider
3638

3739
if (!element) {
3840
if (gitHubContext.repos.length > 0) {
41+
if (gitHubContext.repos.length == 1) {
42+
return getSettingNodes(gitHubContext.repos[0]);
43+
}
44+
3945
return gitHubContext.repos.map((r) => new SettingsRepoNode(r));
4046
}
4147
}
Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as vscode from "vscode";
2-
import { GitHubRepoContext } from "../../git/repository";
2+
33
import { EnvironmentsNode } from "./environmentsNode";
4+
import { GitHubRepoContext } from "../../git/repository";
45
import { SecretsNode } from "./secretsNode";
56
import { SelfHostedRunnersNode } from "./selfHostedRunnersNode";
67
import { SettingsExplorerNode } from "./types";
@@ -13,10 +14,18 @@ export class SettingsRepoNode extends vscode.TreeItem {
1314
}
1415

1516
async getSettings(): Promise<SettingsExplorerNode[]> {
16-
return [
17-
new SelfHostedRunnersNode(this.gitHubRepoContext),
18-
new SecretsNode(this.gitHubRepoContext),
19-
new EnvironmentsNode(this.gitHubRepoContext),
20-
];
17+
return getSettingNodes(this.gitHubRepoContext);
2118
}
2219
}
20+
21+
export function getSettingNodes(
22+
gitHubContext: GitHubRepoContext
23+
): SettingsExplorerNode[] {
24+
const nodes: SettingsExplorerNode[] = [];
25+
26+
nodes.push(new EnvironmentsNode(gitHubContext));
27+
nodes.push(new SecretsNode(gitHubContext));
28+
nodes.push(new SelfHostedRunnersNode(gitHubContext));
29+
30+
return nodes;
31+
}

src/treeViews/workflows.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import * as vscode from "vscode";
22

3+
import {
4+
WorkflowsRepoNode,
5+
getWorkflowNodes,
6+
} from "./workflows/workflowsRepoNode";
37
import { log, logDebug, logError } from "../log";
48

59
import { AuthenticationNode } from "./shared/authenticationNode";
@@ -9,7 +13,6 @@ import { WorkflowJobNode } from "./workflows/workflowJobNode";
913
import { WorkflowNode } from "./workflows/workflowNode";
1014
import { WorkflowRunNode } from "./workflows/workflowRunNode";
1115
import { WorkflowStepNode } from "./workflows/workflowStepNode";
12-
import { WorkflowsRepoNode } from "./workflows/workflowsRepoNode";
1316
import { getGitHubContext } from "../git/repository";
1417

1518
type WorkflowsTreeNode =
@@ -51,6 +54,10 @@ export class WorkflowsTreeProvider
5154
}
5255

5356
if (gitHubContext.repos.length > 0) {
57+
if (gitHubContext.repos.length == 1) {
58+
return getWorkflowNodes(gitHubContext.repos[0]);
59+
}
60+
5461
return gitHubContext.repos.map((r) => new WorkflowsRepoNode(r));
5562
}
5663

src/treeViews/workflows/workflowsRepoNode.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,31 @@ export class WorkflowsRepoNode extends vscode.TreeItem {
1717
async getWorkflows(): Promise<WorkflowNode[]> {
1818
logDebug("Getting workflows");
1919

20-
const result =
21-
await this.gitHubRepoContext.client.actions.listRepoWorkflows({
22-
owner: this.gitHubRepoContext.owner,
23-
repo: this.gitHubRepoContext.name,
24-
});
25-
26-
const resp = result.data;
27-
const workflows = resp.workflows;
28-
29-
workflows.sort((a, b) => a.name.localeCompare(b.name));
30-
31-
return await Promise.all(
32-
workflows.map(async (wf) => {
33-
let parsedWorkflow: ParsedWorkflow | undefined;
34-
35-
const workflowUri = getWorkflowUri(this.gitHubRepoContext, wf.path);
36-
if (workflowUri) {
37-
parsedWorkflow = await parseWorkflow(
38-
workflowUri,
39-
this.gitHubRepoContext
40-
);
41-
}
42-
43-
return new WorkflowNode(this.gitHubRepoContext, wf, parsedWorkflow);
44-
})
45-
);
20+
return getWorkflowNodes(this.gitHubRepoContext);
4621
}
4722
}
23+
24+
export async function getWorkflowNodes(gitHubRepoContext: GitHubRepoContext) {
25+
const result = await gitHubRepoContext.client.actions.listRepoWorkflows({
26+
owner: gitHubRepoContext.owner,
27+
repo: gitHubRepoContext.name,
28+
});
29+
30+
const resp = result.data;
31+
const workflows = resp.workflows;
32+
33+
workflows.sort((a, b) => a.name.localeCompare(b.name));
34+
35+
return await Promise.all(
36+
workflows.map(async (wf) => {
37+
let parsedWorkflow: ParsedWorkflow | undefined;
38+
39+
const workflowUri = getWorkflowUri(gitHubRepoContext, wf.path);
40+
if (workflowUri) {
41+
parsedWorkflow = await parseWorkflow(workflowUri, gitHubRepoContext);
42+
}
43+
44+
return new WorkflowNode(gitHubRepoContext, wf, parsedWorkflow);
45+
})
46+
);
47+
}

0 commit comments

Comments
 (0)