Skip to content

Commit 0b97914

Browse files
committed
maint: upgrade probot to 14.x
This needs to be verified before deployment.
1 parent 3965265 commit 0b97914

7 files changed

Lines changed: 83 additions & 273 deletions

File tree

server/code.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ app.post('/webhook/discourse', (request, response) => {
395395
response.send('ok');
396396
});
397397

398-
app.use('/webhook/keymanapp-test-bot', keymanAppTestBotMiddleware);
398+
app.use('/webhook/keymanapp-test-bot', (request, response) => { keymanAppTestBotMiddleware(request, response); } );
399399

400400
function sendWsAlert(hasChanged: boolean, message: string): boolean {
401401
if(hasChanged) {

server/keymanapp-test-bot/issue-milestone.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ProbotOctokit } from "probot";
2-
import { Issue } from "@octokit/webhooks-types";
2+
import { components } from "@octokit/openapi-webhooks-types";
33

44
import { ProcessEventData } from "./keymanapp-test-bot.js";
55
import { getCurrentSprint } from "../current-sprint.js";
@@ -13,7 +13,7 @@ import { consoleError, consoleLog } from "../util/console-log.js";
1313
export async function updateIssueMilestoneWhenIssueClosed(
1414
octokit: InstanceType<typeof ProbotOctokit>,
1515
data: ProcessEventData,
16-
issue: Issue
16+
issue: components["schemas"]["webhook-issues-closed"]["issue"]
1717
): Promise<void> {
1818
consoleLog('pr-bot', null, `Updating issue #${issue.number} milestone`);
1919
const currentSprint = getCurrentSprint(statusData.cache.sprints?.current?.github?.data);

server/keymanapp-test-bot/keymanapp-test-bot-middleware.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import { env } from "node:process";
88
import * as fs from 'node:fs';
99

10-
import { createNodeMiddleware, Probot } from 'probot';
10+
import { createNodeMiddleware, createProbot, Probot } from 'probot';
1111
import * as keymanappTestBot from './keymanapp-test-bot.js';
1212

1313
import { dirname } from 'node:path';
@@ -35,7 +35,7 @@ let privateKey, secret;
3535
if(fs.existsSync(privateKeyFilename))
3636
privateKey = fs.readFileSync(privateKeyFilename, 'utf8');
3737
else if(env.PROBOT_PRIVATE_KEY)
38-
privateKey = Buffer.from(env.PROBOT_PRIVATE_KEY, 'base64');
38+
privateKey = Buffer.from(env.PROBOT_PRIVATE_KEY, 'base64').toString('utf-8');
3939

4040
if(fs.existsSync(secretFilename))
4141
secret = fs.readFileSync(secretFilename, 'utf8').trim();
@@ -48,10 +48,22 @@ const probot = new Probot({
4848
secret: secret,
4949
});
5050

51-
const middleware = createNodeMiddleware(keymanappTestBot.default, { probot,
51+
// const probot = createProbot({
52+
// env: {
53+
// APP_ID: appId.toString(),
54+
// PRIVATE_KEY: privateKey,
55+
// WEBHOOK_SECRET: secret,
56+
// }
57+
// });
58+
59+
const middleware = await createNodeMiddleware(keymanappTestBot.default, { probot,
5260
webhooksPath: "/",
5361
});
5462

5563
export default (req, res) => {
56-
return middleware(req, res);
64+
middleware(req, res, () => {
65+
res.writeHead(404);
66+
res.end();
67+
});
5768
};
69+

server/keymanapp-test-bot/keymanapp-test-bot.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* @keymanapp-test-bot implementation
55
*/
66

7-
import { User } from "@octokit/webhooks-types";
7+
import { components } from "@octokit/openapi-webhooks-types";
88
import { Probot, ProbotOctokit } from "probot";
99
import { GetResponseTypeFromEndpointMethod, GetResponseDataTypeFromEndpointMethod } from "@octokit/types";
1010

@@ -33,7 +33,7 @@ export interface ProcessEventData {
3333
};
3434

3535
async function processEvent(
36-
octokit: InstanceType<typeof ProbotOctokit>,
36+
octokit: ProbotOctokit,
3737
data: ProcessEventData,
3838
is_pull_request: boolean
3939
) {
@@ -56,12 +56,12 @@ async function processEvent(
5656
}
5757

5858
async function processUserTest(
59-
octokit: InstanceType<typeof ProbotOctokit>,
59+
octokit: ProbotOctokit,
6060
data: ProcessEventData,
6161
is_pull_request: boolean,
6262
issue: GetResponseTypeFromEndpointMethod<typeof octokit.rest.issues.get>,
6363
pull: GetResponseTypeFromEndpointMethod<typeof octokit.rest.pulls.get>,
64-
issue_comments: GetResponseDataTypeFromEndpointMethod<typeof octokit.rest.issues.listComments>) {
64+
issue_comments: GetResponseDataTypeFromEndpointMethod<typeof octokit.rest.issues.listComments>): Promise<any> {
6565

6666
const mtp = new ManualTestParser();
6767
let protocol = new ManualTestProtocol(data.owner, data.repo, data.issue_number, is_pull_request, issue.data.id, pull?.data?.id);
@@ -147,9 +147,9 @@ async function processUserTest(
147147

148148
// If this is a pull request, add a status check
149149
if(is_pull_request) {
150-
let pr = await octokit.pulls.get({...data, pull_number: data.issue_number});
150+
let pr = await octokit.rest.pulls.get({...data, pull_number: data.issue_number});
151151

152-
let statusCounts = {}, totalTests = 0;
152+
let statusCounts: any = {}, totalTests = 0;
153153
statusCounts[ManualTestStatus.Open] = 0;
154154
statusCounts[ManualTestStatus.Passed] = 0;
155155
statusCounts[ManualTestStatus.Failed] = 0;
@@ -177,7 +177,7 @@ async function processUserTest(
177177
statusCounts[ManualTestStatus.Failed] + statusCounts[ManualTestStatus.Blocked] == 0 ? 'pending' : // no errors, but testing unfinished
178178
'failure'; // at least one error
179179

180-
await octokit.repos.createCommitStatus({...data,
180+
await octokit.rest.repos.createCommitStatus({...data,
181181
name: '@keymanapp-test-bot User Test Coverage',
182182
sha: pr.data.head.sha,
183183
state: state,
@@ -190,7 +190,7 @@ async function processUserTest(
190190
log('processEvent: EXIT');
191191
}
192192

193-
function shouldProcessEvent(sender: User, state: "closed"|"open"): boolean {
193+
function shouldProcessEvent(sender: components["schemas"]["simple-user"], state: "closed"|"open"): boolean {
194194
if(sender.type != "User")
195195
return false;
196196

@@ -206,7 +206,7 @@ function shouldProcessEvent(sender: User, state: "closed"|"open"): boolean {
206206
const exports = (app: Probot) => {
207207
app.on(['pull_request.edited', 'pull_request.opened', 'pull_request.synchronize'], (context) => {
208208
log('pull_request ENTER: '+context.id+', '+context.payload.pull_request.number);
209-
if(!shouldProcessEvent(context.payload.sender, context.payload.pull_request.state)) {
209+
if(!shouldProcessEvent(context.payload.sender!, context.payload.pull_request.state)) {
210210
log('pull_request EXIT: '+context.id+' -- skipping');
211211
return null;
212212
}
@@ -225,7 +225,7 @@ const exports = (app: Probot) => {
225225

226226
app.on(['issues.labeled'], (context) => {
227227
log('issues.labeled ENTER: '+context.id+', '+context.payload.issue.number);
228-
if(!shouldProcessEvent(context.payload.sender, context.payload.issue.state)) {
228+
if(!shouldProcessEvent(context.payload.sender, context.payload.issue.state!)) {
229229
log('issues.labeled EXIT: '+context.id+' -- skipping');
230230
return null;
231231
}
@@ -244,7 +244,7 @@ const exports = (app: Probot) => {
244244

245245
app.on(['issues.opened', 'issues.edited'], (context) => {
246246
log('issue ENTER: '+context.id+', '+context.payload.issue.number);
247-
if(!shouldProcessEvent(context.payload.sender, context.payload.issue.state)) {
247+
if(!shouldProcessEvent(context.payload.sender, context.payload.issue.state!)) {
248248
log('issue EXIT: '+context.id+' -- skipping');
249249
return null;
250250
}

0 commit comments

Comments
 (0)