Skip to content

Commit 1f66f30

Browse files
authored
Merge pull request #458 from kkeirstead/copilot/update-install-and-require-packages
Pin @actions/core@2 and @actions/github@8; support versioned packages in installAndRequirePackages
2 parents e749e85 + e54a3fc commit 1f66f30

5 files changed

Lines changed: 15 additions & 14 deletions

File tree

.github/actions/action-utils.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,22 @@ const util = require("util");
22
const fs = require("fs");
33
const jsExec = util.promisify(require("child_process").exec);
44

5-
module.exports.installAndRequirePackages = async function(...newPackages)
6-
{
5+
module.exports.installAndRequirePackages = async function (...packages) {
6+
// Back-compat: allow strings ("@actions/core") as well as objects ({ name, version })
7+
const normalized = packages.map(p => typeof p === "string" ? { name: p } : p);
8+
9+
const installSpecs = normalized.map(p =>
10+
p.version ? `${p.name}@${p.version}` : p.name
11+
);
12+
713
console.log("Installing npm dependency");
8-
const { stdout, stderr } = await jsExec(`npm install ${newPackages.join(' ')}`);
14+
const { stdout, stderr } = await jsExec(`npm install ${installSpecs.join(" ")}`);
915
console.log("npm-install stderr:\n\n" + stderr);
1016
console.log("npm-install stdout:\n\n" + stdout);
1117
console.log("Finished installing npm dependencies");
1218

13-
let requiredPackages = [];
14-
for (const packageName of newPackages) {
15-
requiredPackages.push(require(packageName));
16-
}
17-
18-
return requiredPackages;
19-
}
19+
return normalized.map(p => require(p.name));
20+
};
2021

2122
function splitVersionTag(tag) {
2223
const regex = /v(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)(-(?<versionLabel>[a-zA-Z]+)\.(?<iteration>\d+))?/;

.github/actions/generate-release-notes/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const UpdateReleaseNotesLabel = "update-release-notes";
55
const BackportLabel = "backport";
66

77
async function run() {
8-
const [core, github] = await actionUtils.installAndRequirePackages("@actions/core", "@actions/github");
8+
const [core, github] = await actionUtils.installAndRequirePackages({ name: "@actions/core", version: "2" }, { name: "@actions/github", version: "8" });
99

1010
const octokit = github.getOctokit(core.getInput("auth_token", { required: true }));
1111

.github/actions/learning-path-staleness-check/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ function ValidateLinks(learningPathContents, repoURLToSearch, modifiedPRFiles, l
202202

203203
const main = async () => {
204204

205-
const [core] = await actionUtils.installAndRequirePackages("@actions/core");
205+
const [core] = await actionUtils.installAndRequirePackages({ name: "@actions/core", version: "2" });
206206

207207
try {
208208
const learningPathDirectory = core.getInput('learningPathsDirectory', { required: true });

.github/actions/update-releases-json/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const actionUtils = require('../action-utils.js');
22
const path = require('path');
33

44
async function run() {
5-
const [core, github] = await actionUtils.installAndRequirePackages("@actions/core", "@actions/github");
5+
const [core, github] = await actionUtils.installAndRequirePackages({ name: "@actions/core", version: "2" }, { name: "@actions/github", version: "8" });
66

77
const releasesDataFile = core.getInput("releases_json_file", { required: true });
88
let octokit = undefined;

.github/actions/update-releases-md/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const actionUtils = require('../action-utils.js');
22

33
async function run() {
4-
const [core, github] = await actionUtils.installAndRequirePackages("@actions/core", "@actions/github");
4+
const [core, github] = await actionUtils.installAndRequirePackages({ name: "@actions/core", version: "2" }, { name: "@actions/github", version: "8" });
55

66
const releasesDataFile = core.getInput("releases_json_file", { required: true });
77
const outputFile = core.getInput("releases_md_file", { required: true });

0 commit comments

Comments
 (0)