Skip to content

Commit b7508d4

Browse files
committed
Combine environment and repository secret nodes
1 parent b2fe3e7 commit b7508d4

10 files changed

Lines changed: 33 additions & 58 deletions

File tree

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,17 +330,17 @@
330330
},
331331
{
332332
"command": "github-actions.settings.secret.update",
333-
"when": "viewItem == 'secret'",
333+
"when": "viewItem == 'repo-secret'",
334334
"group": "inline@1"
335335
},
336336
{
337337
"command": "github-actions.settings.secret.copy",
338-
"when": "viewItem == 'secret'",
338+
"when": "viewItem == 'repo-secret'",
339339
"group": "context"
340340
},
341341
{
342342
"command": "github-actions.settings.secret.delete",
343-
"when": "viewItem == 'secret'",
343+
"when": "viewItem == 'repo-secret'",
344344
"group": "inline@2"
345345
},
346346
{

src/commands/secrets/copySecret.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import * as vscode from "vscode";
2-
import {GitHubRepoContext} from "../../git/repository";
3-
import {EnvironmentSecret, RepoSecret} from "../../model";
4-
5-
interface CopySecretCommandArgs {
6-
gitHubRepoContext: GitHubRepoContext;
7-
secret: RepoSecret | EnvironmentSecret;
8-
}
2+
import {SecretCommandArgs} from "../../treeViews/settings/secretNode";
93

104
export function registerCopySecret(context: vscode.ExtensionContext) {
115
context.subscriptions.push(
12-
vscode.commands.registerCommand("github-actions.settings.secret.copy", async (args: CopySecretCommandArgs) => {
6+
vscode.commands.registerCommand("github-actions.settings.secret.copy", async (args: SecretCommandArgs) => {
137
const {secret} = args;
148

159
await vscode.env.clipboard.writeText(secret.name);

src/commands/secrets/deleteSecret.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import * as vscode from "vscode";
2-
import {GitHubRepoContext} from "../../git/repository";
3-
import {RepoSecret} from "../../model";
4-
5-
interface DeleteSecretCommandArgs {
6-
gitHubRepoContext: GitHubRepoContext;
7-
secret: RepoSecret;
8-
}
2+
import {SecretCommandArgs} from "../../treeViews/settings/secretNode";
93

104
export function registerDeleteSecret(context: vscode.ExtensionContext) {
115
context.subscriptions.push(
12-
vscode.commands.registerCommand("github-actions.settings.secret.delete", async (args: DeleteSecretCommandArgs) => {
6+
vscode.commands.registerCommand("github-actions.settings.secret.delete", async (args: SecretCommandArgs) => {
137
const gitHubContext = args.gitHubRepoContext;
148
const secret = args.secret;
159

src/commands/secrets/updateSecret.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
import * as vscode from "vscode";
2-
import {GitHubRepoContext} from "../../git/repository";
32
import {RepoSecret} from "../../model";
43
import {encodeSecret} from "../../secrets";
5-
6-
interface UpdateSecretCommandArgs {
7-
gitHubRepoContext: GitHubRepoContext;
8-
secret: RepoSecret;
9-
}
4+
import {SecretCommandArgs} from "../../treeViews/settings/secretNode";
105

116
export function registerUpdateSecret(context: vscode.ExtensionContext) {
127
context.subscriptions.push(
13-
vscode.commands.registerCommand("github-actions.settings.secret.update", async (args: UpdateSecretCommandArgs) => {
8+
vscode.commands.registerCommand("github-actions.settings.secret.update", async (args: SecretCommandArgs) => {
149
const gitHubContext = args.gitHubRepoContext;
1510
const secret: RepoSecret = args.secret;
1611

src/treeViews/settings/environmentSecretNode.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/treeViews/settings/environmentSecretsNode.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as vscode from "vscode";
22
import {GitHubRepoContext} from "../../git/repository";
33
import {Environment} from "../../model";
44
import {EmptyNode} from "./emptyNode";
5-
import {EnvironmentSecretNode} from "./environmentSecretNode";
5+
import {SecretNode} from "./secretNode";
66

77
export class EnvironmentSecretsNode extends vscode.TreeItem {
88
constructor(public readonly gitHubRepoContext: GitHubRepoContext, public readonly environment: Environment) {
@@ -11,15 +11,15 @@ export class EnvironmentSecretsNode extends vscode.TreeItem {
1111
this.iconPath = new vscode.ThemeIcon("lock");
1212
}
1313

14-
async getSecrets(): Promise<(EnvironmentSecretNode | EmptyNode)[]> {
14+
async getSecrets(): Promise<(SecretNode | EmptyNode)[]> {
1515
const secrets = await this.gitHubRepoContext.client.paginate(
1616
this.gitHubRepoContext.client.actions.listEnvironmentSecrets,
1717
{
1818
repository_id: this.gitHubRepoContext.id,
1919
environment_name: this.environment.name,
2020
per_page: 100
2121
},
22-
response => response.data.map(s => new EnvironmentSecretNode(this.gitHubRepoContext, s))
22+
response => response.data.map(s => new SecretNode(this.gitHubRepoContext, s, this.environment))
2323
);
2424

2525
if (!secrets || secrets.length === 0) {

src/treeViews/settings/repoSecretNode.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/treeViews/settings/repoSecretsNode.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as vscode from "vscode";
22
import {GitHubRepoContext} from "../../git/repository";
3-
import {RepoSecretNode} from "./repoSecretNode";
3+
import {SecretNode} from "./secretNode";
44

55
export class RepoSecretsNode extends vscode.TreeItem {
66
constructor(public readonly gitHubRepoContext: GitHubRepoContext) {
@@ -17,7 +17,7 @@ export class RepoSecretsNode extends vscode.TreeItem {
1717
repo: this.gitHubRepoContext.name,
1818
per_page: 100
1919
},
20-
response => response.data.map(s => new RepoSecretNode(this.gitHubRepoContext, s))
20+
response => response.data.map(s => new SecretNode(this.gitHubRepoContext, s))
2121
);
2222
}
2323
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import * as vscode from "vscode";
2+
import {GitHubRepoContext} from "../../git/repository";
3+
import {Environment, EnvironmentSecret, RepoSecret} from "../../model";
4+
5+
export type SecretCommandArgs = Pick<SecretNode, "gitHubRepoContext" | "secret" | "environment">;
6+
7+
export class SecretNode extends vscode.TreeItem {
8+
constructor(
9+
public readonly gitHubRepoContext: GitHubRepoContext,
10+
public readonly secret: RepoSecret | EnvironmentSecret,
11+
public readonly environment?: Environment
12+
) {
13+
super(secret.name);
14+
15+
this.contextValue = environment ? "env-secret" : "repo-secret";
16+
}
17+
}

src/treeViews/settings/types.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
import {EmptyNode} from "./emptyNode";
22
import {EnvironmentNode} from "./environmentNode";
3-
import {EnvironmentSecretNode} from "./environmentSecretNode";
43
import {EnvironmentSecretsNode} from "./environmentSecretsNode";
54
import {EnvironmentsNode} from "./environmentsNode";
65
import {VariableNode} from "./variableNode";
76
import {EnvironmentVariablesNode} from "./environmentVariablesNode";
8-
import {RepoSecretNode} from "./repoSecretNode";
7+
import {SecretNode} from "./secretNode";
98
import {SecretsNode} from "./secretsNode";
109
import {SelfHostedRunnersNode} from "./selfHostedRunnersNode";
1110
import {VariablesNode} from "./variablesNode";
1211

1312
export type SettingsExplorerNode =
1413
| SelfHostedRunnersNode
1514
| SecretsNode
16-
| RepoSecretNode
15+
| SecretNode
1716
| EnvironmentsNode
1817
| EnvironmentNode
19-
| EnvironmentSecretNode
2018
| EnvironmentSecretsNode
2119
| VariableNode
2220
| VariablesNode
2321
| EnvironmentVariablesNode
24-
| EnvironmentSecretNode
2522
| EmptyNode;

0 commit comments

Comments
 (0)