mirror of
https://github.com/github/codeql-action.git
synced 2025-12-31 03:30:14 +08:00
Co-authored-by: Andrew Eisenberg <aeisenberg@github.com> Co-authored-by: Henry Mercer <henrymercer@github.com>
122 lines
6.3 KiB
JavaScript
122 lines
6.3 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
}) : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getArtifactInternal = exports.getArtifactPublic = void 0;
|
|
const github_1 = require("@actions/github");
|
|
const plugin_retry_1 = require("@octokit/plugin-retry");
|
|
const core = __importStar(require("@actions/core"));
|
|
const utils_1 = require("@actions/github/lib/utils");
|
|
const retry_options_1 = require("./retry-options");
|
|
const plugin_request_log_1 = require("@octokit/plugin-request-log");
|
|
const util_1 = require("../shared/util");
|
|
const user_agent_1 = require("../shared/user-agent");
|
|
const artifact_twirp_client_1 = require("../shared/artifact-twirp-client");
|
|
const generated_1 = require("../../generated");
|
|
const errors_1 = require("../shared/errors");
|
|
function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
|
|
var _a;
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
const [retryOpts, requestOpts] = (0, retry_options_1.getRetryOptions)(utils_1.defaults);
|
|
const opts = {
|
|
log: undefined,
|
|
userAgent: (0, user_agent_1.getUserAgentString)(),
|
|
previews: undefined,
|
|
retry: retryOpts,
|
|
request: requestOpts
|
|
};
|
|
const github = (0, github_1.getOctokit)(token, opts, plugin_retry_1.retry, plugin_request_log_1.requestLog);
|
|
const getArtifactResp = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts{?name}', {
|
|
owner: repositoryOwner,
|
|
repo: repositoryName,
|
|
run_id: workflowRunId,
|
|
name: artifactName
|
|
});
|
|
if (getArtifactResp.status !== 200) {
|
|
throw new errors_1.InvalidResponseError(`Invalid response from GitHub API: ${getArtifactResp.status} (${(_a = getArtifactResp === null || getArtifactResp === void 0 ? void 0 : getArtifactResp.headers) === null || _a === void 0 ? void 0 : _a['x-github-request-id']})`);
|
|
}
|
|
if (getArtifactResp.data.artifacts.length === 0) {
|
|
throw new errors_1.ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
}
|
|
let artifact = getArtifactResp.data.artifacts[0];
|
|
if (getArtifactResp.data.artifacts.length > 1) {
|
|
artifact = getArtifactResp.data.artifacts.sort((a, b) => b.id - a.id)[0];
|
|
core.debug(`More than one artifact found for a single name, returning newest (id: ${artifact.id})`);
|
|
}
|
|
return {
|
|
artifact: {
|
|
name: artifact.name,
|
|
id: artifact.id,
|
|
size: artifact.size_in_bytes,
|
|
createdAt: artifact.created_at ? new Date(artifact.created_at) : undefined
|
|
}
|
|
};
|
|
});
|
|
}
|
|
exports.getArtifactPublic = getArtifactPublic;
|
|
function getArtifactInternal(artifactName) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
const artifactClient = (0, artifact_twirp_client_1.internalArtifactTwirpClient)();
|
|
const { workflowRunBackendId, workflowJobRunBackendId } = (0, util_1.getBackendIdsFromToken)();
|
|
const req = {
|
|
workflowRunBackendId,
|
|
workflowJobRunBackendId,
|
|
nameFilter: generated_1.StringValue.create({ value: artifactName })
|
|
};
|
|
const res = yield artifactClient.ListArtifacts(req);
|
|
if (res.artifacts.length === 0) {
|
|
throw new errors_1.ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
}
|
|
let artifact = res.artifacts[0];
|
|
if (res.artifacts.length > 1) {
|
|
artifact = res.artifacts.sort((a, b) => Number(b.databaseId) - Number(a.databaseId))[0];
|
|
core.debug(`More than one artifact found for a single name, returning newest (id: ${artifact.databaseId})`);
|
|
}
|
|
return {
|
|
artifact: {
|
|
name: artifact.name,
|
|
id: Number(artifact.databaseId),
|
|
size: Number(artifact.size),
|
|
createdAt: artifact.createdAt
|
|
? generated_1.Timestamp.toDate(artifact.createdAt)
|
|
: undefined
|
|
}
|
|
};
|
|
});
|
|
}
|
|
exports.getArtifactInternal = getArtifactInternal;
|
|
//# sourceMappingURL=get-artifact.js.map
|