Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 0 additions & 65 deletions __tests__/gpg.test.ts

This file was deleted.

52 changes: 0 additions & 52 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,65 +107,13 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.setupKeys = setupKeys;
exports.verify = verify;
exports.refreshKeys = refreshKeys;
const exec_1 = __nccwpck_require__(5236);
const core = __importStar(__nccwpck_require__(7484));
const toolCache = __importStar(__nccwpck_require__(3472));
async function setupKeys(os) {
core.debug("Fetching verification keys");
let path = await toolCache.downloadTool("https://swift.org/keys/all-keys.asc");
if (os === "linux" || os === "darwin") {
core.debug("Examining verification keys");
await (0, exec_1.exec)(`file "${path}"`);
const isPlaintext = await (0, exec_1.exec)(`gunzip --test "${path}"`, undefined, {
silent: true,
ignoreReturnCode: true,
});
core.debug("Importing verification keys");
await (0, exec_1.exec)("bash", [
"-c",
`${isPlaintext ? "cat" : "zcat"} "${path}" | gpg --import`,
]);
}
if (os === "win32") {
core.debug("Importing verification keys");
await (0, exec_1.exec)(`gpg --import "${path}"`);
}
core.debug("Refreshing keys");
await refreshKeys();
}
async function verify(signaturePath, packagePath) {
core.debug("Verifying signature");
await (0, exec_1.exec)("gpg", ["--verify", signaturePath, packagePath]);
}
async function refreshKeys() {
const pool = ["hkp://keyserver.ubuntu.com"];
for (const server of pool) {
core.debug(`Refreshing keys from ${server}`);
// 1st try...
if (await refreshKeysFromServer(server)) {
core.debug(`Refresh successful on first attempt`);
return;
}
// 2nd try...
if (await refreshKeysFromServer(server)) {
core.debug(`Refresh successful on second attempt`);
return;
}
core.debug(`Refresh failed`);
}
throw new Error("Failed to refresh keys from any server in the pool.");
}
function refreshKeysFromServer(server) {
return (0, exec_1.exec)(`gpg --keyserver ${server} --refresh-keys Swift`)
.then((code) => code === 0)
.catch((error) => {
core.warning(`An error occurred when trying to refresh keys from ${server}: ${error}`);
return false;
});
}


/***/ }),
Expand Down
65 changes: 0 additions & 65 deletions src/core/gpg.ts
Original file line number Diff line number Diff line change
@@ -1,72 +1,7 @@
import { exec } from "@actions/exec";
import * as core from "@actions/core";
import * as toolCache from "@actions/tool-cache";
import { OS } from "./os";

export async function setupKeys(os: OS) {
core.debug("Fetching verification keys");
let path = await toolCache.downloadTool(
"https://swift.org/keys/all-keys.asc",
);

if (os === "linux" || os === "darwin") {
core.debug("Examining verification keys");
await exec(`file "${path}"`);
const isPlaintext = await exec(`gunzip --test "${path}"`, undefined, {
silent: true,
ignoreReturnCode: true,
});

core.debug("Importing verification keys");
await exec("bash", [
"-c",
`${isPlaintext ? "cat" : "zcat"} "${path}" | gpg --import`,
]);
}

if (os === "win32") {
core.debug("Importing verification keys");
await exec(`gpg --import "${path}"`);
}

core.debug("Refreshing keys");
await refreshKeys();
}

export async function verify(signaturePath: string, packagePath: string) {
core.debug("Verifying signature");
await exec("gpg", ["--verify", signaturePath, packagePath]);
}

export async function refreshKeys() {
const pool = ["hkp://keyserver.ubuntu.com"];

for (const server of pool) {
core.debug(`Refreshing keys from ${server}`);
// 1st try...
if (await refreshKeysFromServer(server)) {
core.debug(`Refresh successful on first attempt`);
return;
}

// 2nd try...
if (await refreshKeysFromServer(server)) {
core.debug(`Refresh successful on second attempt`);
return;
}
core.debug(`Refresh failed`);
}

throw new Error("Failed to refresh keys from any server in the pool.");
}

function refreshKeysFromServer(server: string): Promise<boolean> {
return exec(`gpg --keyserver ${server} --refresh-keys Swift`)
.then((code) => code === 0)
.catch((error) => {
core.warning(
`An error occurred when trying to refresh keys from ${server}: ${error}`,
);
return false;
});
}
2 changes: 0 additions & 2 deletions src/core/os.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,3 @@ export async function getOS() {

return detectedSystem.os;
}

export type OS = getos.Os["os"];