Skip to content

Commit af14ebb

Browse files
committed
refactor(memory): further memory cleanup to pr object
1 parent 368f787 commit af14ebb

File tree

1 file changed

+31
-24
lines changed

1 file changed

+31
-24
lines changed

Diff for: index.js

+31-24
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ module.exports = (app) => {
1515
'pull_request_review_comment', // comment lines on diffs for reviews
1616
], async context => {
1717

18-
// log helper
19-
function log(pr, message, type = 'info') {
20-
if (ENABLE_ID_LOGS) {
21-
context.log[type](`PR ${pr.head.repo.full_name}#${pr.number}: ${message}`);
22-
}
23-
}
24-
2518
// lookup the pr
2619
let pr = context.payload.pull_request;
2720

@@ -48,13 +41,27 @@ module.exports = (app) => {
4841
return;
4942
}
5043

51-
log(pr, `Request received [Context: ${context.id}]`);
52-
44+
// pr details
45+
let prRepo = pr.head.repo.full_name;
46+
let prNumber = pr.number;
47+
let prHeadSha = pr.head.sha;
5348
let prBody = pr.body;
49+
let prUser = pr.user.login;
50+
// cleanup
51+
pr = null;
52+
53+
// log helper
54+
function log(message, type = 'info') {
55+
if (ENABLE_ID_LOGS) {
56+
context.log[type](`PR ${prRepo}#${prNumber}: ${message}`);
57+
}
58+
}
59+
60+
log(`Request received [Context: ${context.id}]`);
5461

5562
// if the author is a renovate bot, ignore checks
5663
// https://www.mend.io/free-developer-tools/renovate/
57-
if (pr.user.login.indexOf('renovate[bot]') !== -1) {
64+
if (prUser.indexOf('renovate[bot]') !== -1) {
5865
prBody = null;
5966
}
6067

@@ -66,7 +73,7 @@ module.exports = (app) => {
6673
try {
6774
comments = await context.octokit.issues.listComments(context.repo({
6875
per_page: 100,
69-
issue_number: pr.number
76+
issue_number: prNumber
7077
}));
7178

7279
// bots to ignore
@@ -83,48 +90,48 @@ module.exports = (app) => {
8390

8491
} catch (err) {
8592
if (err.status === 403) { // if we don't have access to the repo, skip entirely
86-
log(pr, `No access, skipping entirely. Error (${err.status}): ${err.message}`, 'error');
93+
log(`No access, skipping entirely. Error (${err.status}): ${err.message}`, 'error');
8794
return;
8895
}
89-
log(pr, `Error looking up comments, skipping. Error (${err.status}): ${err.message}`, 'error');
96+
log(`Error looking up comments, skipping. Error (${err.status}): ${err.message}`, 'error');
9097
}
9198

92-
log(pr, 'Main comments api lookup complete');
99+
log('Main comments api lookup complete');
93100

94101
// as well as review comments
95102
let reviewComments;
96103
try {
97104
reviewComments = await context.octokit.pulls.listReviews(context.repo({
98105
per_page: 100,
99-
pull_number: pr.number
106+
pull_number: prNumber
100107
}));
101108
if (reviewComments.data.length) {
102109
comments.data = comments.data.concat(reviewComments.data);
103110
}
104111
// cleanup
105112
reviewComments = null;
106113
} catch (err) {
107-
log(pr, `Error looking up review comments, skipping. Error (${err.status}): ${err.message}`, 'error');
114+
log(`Error looking up review comments, skipping. Error (${err.status}): ${err.message}`, 'error');
108115
}
109116

110-
log(pr, 'Review comments api lookup complete');
117+
log('Review comments api lookup complete');
111118

112119
// and diff level comments on reviews
113120
try {
114121
let reviewDiffComments = await context.octokit.pulls.listReviewComments(context.repo({
115122
per_page: 100,
116-
pull_number: pr.number
123+
pull_number: prNumber
117124
}));
118125
if (reviewDiffComments.data.length) {
119126
comments.data = comments.data.concat(reviewDiffComments.data);
120127
}
121128
// cleanup
122129
reviewDiffComments = null;
123130
} catch (err) {
124-
log(pr, `Error looking up review diff comments, skipping. Error (${err.status}): ${err.message}`, 'error');
131+
log(`Error looking up review diff comments, skipping. Error (${err.status}): ${err.message}`, 'error');
125132
}
126133

127-
log(pr, 'Diff comments api lookup complete');
134+
log('Diff comments api lookup complete');
128135

129136
// & check them for tasks
130137
if (comments && comments.data && comments.data.length) {
@@ -167,7 +174,7 @@ ${outstandingTasks.optionalTasks.map(task => `| ${task.task} | ${task.status} |`
167174
let check = {
168175
name: 'task-list-completed',
169176
head_branch: '',
170-
head_sha: pr.head.sha,
177+
head_sha: prHeadSha,
171178
started_at: (new Date).toISOString(),
172179
status: 'in_progress',
173180
output: {
@@ -192,7 +199,7 @@ ${outstandingTasks.optionalTasks.map(task => `| ${task.task} | ${task.status} |`
192199
check.output.summary = 'All tasks have been completed' + optionalText;
193200
};
194201

195-
log(pr, 'Complete and sending back to GitHub');
202+
log('Complete and sending back to GitHub');
196203

197204
// cleanup
198205
prBody = null;
@@ -204,9 +211,9 @@ ${outstandingTasks.optionalTasks.map(task => `| ${task.task} | ${task.status} |`
204211
// send check back to GitHub
205212
try {
206213
const response = await context.octokit.checks.create(context.repo(check));
207-
log(pr, `Check response status from GitHub ${response.status} [X-GitHub-Request-Id: ${response.headers['x-github-request-id']}]`);
214+
log(`Check response status from GitHub ${response.status} [X-GitHub-Request-Id: ${response.headers['x-github-request-id']}]`);
208215
} catch (err) {
209-
log(pr, `Error sending check back to GitHub. Error (${err.status}): ${err.message}`, 'error');
216+
log(`Error sending check back to GitHub. Error (${err.status}): ${err.message}`, 'error');
210217
}
211218

212219
return;

0 commit comments

Comments
 (0)