forked from EliLillyCo/github-actions-post-to-pr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.js
81 lines (65 loc) · 1.61 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const fs = require('fs');
const execSync = require('child_process').execSync;
const crypto = require('crypto');
const github = require('@actions/github');
const core = require('@actions/core');
const artifact = require('@actions/artifact');
function formatMarkdownBlock(text, collapsible) {
if (collapsible) {
return `<details><summary>Expand</summary>
<br>
\`\`\`
${text}
\`\`\`
</details>
`
} else {
return `\`\`\`
${text}
\`\`\`
`
}
}
function applyMessageModifier(message, modifier) {
if (!modifier) {
return message
}
var filename = 'tempfile'+crypto.randomBytes(4).readUInt32LE(0);
fs.writeFileSync(filename, message);
const re = execSync(`cat ${filename} | ${modifier}`).toString()
fs.unlinkSync(filename)
return re
}
async function getRun(octokit) {
const runId = process.env['GITHUB_RUN_ID'];
const run = await octokit.actions.getWorkflowRun({
...github.context.repo,
run_id: runId,
});
return run.data;
}
function getToken() {
return core.getInput('github_token');
}
function getClient() {
const token = getToken();
return new github.GitHub(token);
}
async function uploadArtifacts(definitions) {
const artifactClient = artifact.create();
for (const definition of definitions) {
await artifactClient.uploadArtifact(definition["artifact_name"],
[
definition["message_file"]
],
".")
}
}
module.exports = {
formatMarkdownBlock,
applyMessageModifier,
getRun,
getToken,
getClient,
uploadArtifacts
}