Skip to content

Commit bc10adb

Browse files
committed
Update to latest octokit version, removing custom client
1 parent acf7052 commit bc10adb

File tree

9 files changed

+112
-282
lines changed

9 files changed

+112
-282
lines changed

package-lock.json

Lines changed: 45 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
"vscode-test": "^1.2.2"
175175
},
176176
"dependencies": {
177-
"@octokit/rest": "^16.35.2",
177+
"@octokit/rest": "github:octokit/rest.js#master",
178178
"atob": "^2.1.2",
179179
"btoa": "^1.2.1",
180180
"js-yaml": "^3.13.1",

src/api/api.ts

Lines changed: 2 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,9 @@
11
import Octokit = require("@octokit/rest");
2-
import { OctokitWithActions } from "../typings/api";
32

4-
export function getClient(token: string): OctokitWithActions {
5-
const client = (new Octokit({
3+
export function getClient(token: string): Octokit {
4+
return new Octokit({
65
auth: token,
76
userAgent: "VS Code GitHub Actions",
87
previews: ["jane-hopper"]
9-
}) as any) as OctokitWithActions;
10-
11-
// Register endpoints for API in development
12-
client.registerEndpoints({
13-
actions: {
14-
listWorkflows: {
15-
method: "GET",
16-
params: {
17-
owner: { required: true, type: "string" },
18-
repo: { required: true, type: "string" }
19-
},
20-
headers: {
21-
accept: "application/vnd.github.jane-hopper-preview+json"
22-
},
23-
url: "/repos/:owner/:repo/actions/workflows"
24-
},
25-
26-
cancelWorkflow: {
27-
method: "POST",
28-
params: {
29-
owner: { required: true, type: "string" },
30-
repo: { required: true, type: "string" },
31-
run: { required: true, type: "integer" }
32-
},
33-
headers: {
34-
accept: "application/vnd.github.jane-hopper-preview+json"
35-
},
36-
url: "/repos/:owner/:repo/actions/runs/:run/cancel"
37-
},
38-
39-
rerunWorkflow: {
40-
method: "POST",
41-
params: {
42-
owner: { required: true, type: "string" },
43-
repo: { required: true, type: "string" },
44-
run: { required: true, type: "integer" }
45-
},
46-
headers: {
47-
accept: "application/vnd.github.jane-hopper-preview+json"
48-
},
49-
url: "/repos/:owner/:repo/actions/runs/:run/rerun"
50-
},
51-
52-
getSecrets: {
53-
method: "GET",
54-
params: {
55-
owner: { required: true, type: "string" },
56-
repo: { required: true, type: "string" }
57-
},
58-
headers: {
59-
accept: "application/vnd.github.jane-hopper-preview+json"
60-
},
61-
url: "/repos/:owner/:repo/actions/secrets"
62-
},
63-
64-
setSecret: {
65-
method: "PUT",
66-
params: {
67-
owner: { required: true, type: "string" },
68-
repo: { required: true, type: "string" },
69-
name: { require: true, type: "string" }
70-
},
71-
headers: {
72-
accept: "application/vnd.github.jane-hopper-preview+json"
73-
},
74-
url: "/repos/:owner/:repo/actions/secrets/:name"
75-
},
76-
77-
getPublicKey: {
78-
method: "GET",
79-
params: {
80-
owner: { required: true, type: "string" },
81-
repo: { required: true, type: "string" }
82-
},
83-
headers: {
84-
accept: "application/vnd.github.jane-hopper-preview+json"
85-
},
86-
url: "/repos/:owner/:repo/actions/secrets/public-key"
87-
}
88-
}
898
});
90-
91-
return client;
929
}

src/extension.ts

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import * as vscode from "vscode";
2-
import { ActionsExplorerProvider as WorkflowsTreeProvider } from "./treeViews/workflows";
3-
import { initResources } from "./treeViews/icons";
4-
import { Workflow, WorkflowRun, Secret } from "./model";
5-
import { join } from "path";
62
import { setPAT } from "./auth/pat";
7-
import { getWorkflowUri } from "./workflow/workflow";
8-
import { OctokitWithActions } from "./typings/api";
93
import { Protocol } from "./external/protocol";
10-
import { SettingsTreeProvider } from "./treeViews/settings";
114
import { encodeSecret } from "./secrets";
5+
import { initResources } from "./treeViews/icons";
6+
import { SettingsTreeProvider } from "./treeViews/settings";
7+
import { ActionsExplorerProvider as WorkflowsTreeProvider } from "./treeViews/workflows";
8+
import { getWorkflowUri } from "./workflow/workflow";
9+
import Octokit = require("@octokit/rest");
10+
import { Workflow, WorkflowRun, Secret } from "./model";
1211

1312
export function activate(context: vscode.ExtensionContext) {
1413
initResources(context);
@@ -60,7 +59,7 @@ export function activate(context: vscode.ExtensionContext) {
6059
});
6160
if (event_type) {
6261
const repo: Protocol = args.repo;
63-
const client: OctokitWithActions = args.client;
62+
const client: Octokit = args.client;
6463

6564
await client.repos.createDispatchEvent({
6665
owner: repo.owner,
@@ -116,13 +115,13 @@ export function activate(context: vscode.ExtensionContext) {
116115
vscode.commands.registerCommand("workflow.run.rerun", async args => {
117116
const repo: Protocol = args.repo;
118117
const run: WorkflowRun = args.run;
119-
const client: OctokitWithActions = args.client;
118+
const client: Octokit = args.client;
120119

121120
try {
122-
await client.actions.rerunWorkflow({
121+
await client.actions.reRunWorkflow({
123122
owner: repo.owner,
124123
repo: repo.repositoryName,
125-
run: run.id
124+
run_id: run.id
126125
});
127126
} catch (e) {
128127
vscode.window.showErrorMessage(
@@ -138,13 +137,13 @@ export function activate(context: vscode.ExtensionContext) {
138137
vscode.commands.registerCommand("workflow.run.cancel", async args => {
139138
const repo: Protocol = args.repo;
140139
const run: WorkflowRun = args.run;
141-
const client: OctokitWithActions = args.client;
140+
const client: Octokit = args.client;
142141

143142
try {
144-
await client.actions.cancelWorkflow({
143+
await client.actions.cancelWorkflowRun({
145144
owner: repo.owner,
146145
repo: repo.repositoryName,
147-
run: run.id
146+
run_id: run.id
148147
});
149148
} catch (e) {
150149
vscode.window.showErrorMessage(
@@ -159,7 +158,7 @@ export function activate(context: vscode.ExtensionContext) {
159158
context.subscriptions.push(
160159
vscode.commands.registerCommand("settings.secret.add", async args => {
161160
const repo: Protocol = args.repo;
162-
const client: OctokitWithActions = args.client;
161+
const client: Octokit = args.client;
163162

164163
const name = await vscode.window.showInputBox({
165164
prompt: "Enter name for new secret"
@@ -180,10 +179,10 @@ export function activate(context: vscode.ExtensionContext) {
180179
repo: repo.repositoryName
181180
});
182181

183-
const key_id: string = keyResponse.data.key_id;
184-
const key: string = keyResponse.data.key;
182+
const key_id = keyResponse.data.key_id;
183+
const key = keyResponse.data.key;
185184

186-
await client.actions.setSecret({
185+
await client.actions.createOrUpdateSecretForRepo({
187186
owner: repo.owner,
188187
repo: repo.repositoryName,
189188
name: name,
@@ -203,16 +202,13 @@ export function activate(context: vscode.ExtensionContext) {
203202
vscode.commands.registerCommand("settings.secret.delete", async args => {
204203
const repo: Protocol = args.repo;
205204
const secret: Secret = args.secret;
206-
const client: OctokitWithActions = args.client;
205+
const client: Octokit = args.client;
207206

208-
// TODO: Make API call
209-
// await client.actions.setSecret({
210-
// owner: repo.owner,
211-
// repo: repo.repositoryName,
212-
// name: name,
213-
// key_id: key_id,
214-
// encrypted_value: encodeSecret(key, value)
215-
// });
207+
await client.actions.deleteSecretFromRepo({
208+
owner: repo.owner,
209+
repo: repo.repositoryName,
210+
name: secret.name
211+
});
216212

217213
settingsTreeProvider.refresh();
218214
})
@@ -222,7 +218,7 @@ export function activate(context: vscode.ExtensionContext) {
222218
vscode.commands.registerCommand("settings.secret.update", async args => {
223219
const repo: Protocol = args.repo;
224220
const secret: Secret = args.secret;
225-
const client: OctokitWithActions = args.client;
221+
const client: Octokit = args.client;
226222

227223
const value = await vscode.window.showInputBox({
228224
prompt: "Enter the new secret value"
@@ -235,10 +231,10 @@ export function activate(context: vscode.ExtensionContext) {
235231
repo: repo.repositoryName
236232
});
237233

238-
const key_id: string = keyResponse.data.key_id;
239-
const key: string = keyResponse.data.key;
234+
const key_id = keyResponse.data.key_id;
235+
const key = keyResponse.data.key;
240236

241-
await client.actions.setSecret({
237+
await client.actions.createOrUpdateSecretForRepo({
242238
owner: repo.owner,
243239
repo: repo.repositoryName,
244240
name: secret.name,

src/model.ts

Lines changed: 13 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,16 @@
1-
export interface WorkflowsResponse {
2-
total_count: number;
3-
workflows: Workflow[];
4-
}
1+
import {
2+
ActionsListRepoWorkflowsResponseWorkflowsItem,
3+
ActionsListSecretsForRepoResponseItemSecretsItem,
4+
ActionsListWorkflowRunsResponseWorkflowRunsItem
5+
} from "@octokit/rest";
56

6-
export interface Workflow {
7-
id: number;
8-
node_id: string;
9-
name: string;
10-
path: string;
11-
state: string;
12-
created_at: Date;
13-
updated_at: Date;
14-
url: string;
15-
html_url: string;
16-
badge_url: string;
17-
}
7+
type Modify<T, R> = Omit<T, keyof R> & R;
188

19-
// Runs
9+
export type Workflow = ActionsListRepoWorkflowsResponseWorkflowsItem;
10+
export interface WorkflowRun
11+
extends Modify<
12+
ActionsListWorkflowRunsResponseWorkflowRunsItem,
13+
{ conclusion: string }
14+
> {}
2015

21-
export interface RunsResponse {
22-
total_count: number;
23-
workflow_runs: WorkflowRun[];
24-
}
25-
26-
export interface WorkflowRun {
27-
id: number;
28-
node_id: string;
29-
head_branch: string;
30-
head_sha: string;
31-
event: string;
32-
status: string;
33-
conclusion: string;
34-
url: string;
35-
before: string;
36-
after: string;
37-
// pull_requests: PullRequest[];
38-
created_at: string; // Should be Date..
39-
updated_at: string; // Should be Date..
40-
jobs_url: string;
41-
artifacts_url: string;
42-
cancel_url: string;
43-
rerun_url: string;
44-
workflow_url: string;
45-
// head_commit: HeadCommit;
46-
// repository: Repository;
47-
// head_repository: Repository;
48-
}
49-
50-
export interface Secret {
51-
name: string;
52-
created_at: string;
53-
updated_at: string;
54-
}
16+
export type Secret = ActionsListSecretsForRepoResponseItemSecretsItem;

0 commit comments

Comments
 (0)