Specify owner, repo
This commit is contained in:
@@ -2,6 +2,15 @@ name: Get Release
|
||||
description: Get a release by tag, latest or current release
|
||||
author: Giao Ho
|
||||
inputs:
|
||||
owner:
|
||||
# Default: Current owner
|
||||
description: The name of the owner of the repo. Used to identify the owner of the repository.
|
||||
required: false
|
||||
repo:
|
||||
# Default: Current repository
|
||||
description: The name of the repository. Used to identify the repository on which to release.
|
||||
required: false
|
||||
|
||||
tag_name:
|
||||
description: Specify tag instead of using checkout tag.
|
||||
required: false
|
||||
|
||||
+23
-5
@@ -5898,6 +5898,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Outputs = exports.Inputs = void 0;
|
||||
var Inputs;
|
||||
(function (Inputs) {
|
||||
Inputs["Owner"] = "owner";
|
||||
Inputs["Repo"] = "repo";
|
||||
Inputs["TagName"] = "tag_name";
|
||||
Inputs["Latest"] = "latest";
|
||||
Inputs["Pattern"] = "pattern";
|
||||
@@ -5993,14 +5995,17 @@ exports.handlerError = handlerError;
|
||||
try {
|
||||
const inputs = io_helper_1.getInputs();
|
||||
const github = github_1.getOctokit(process.env.GITHUB_TOKEN);
|
||||
const { owner, repo } = github_1.context.repo;
|
||||
if (!inputs.latest) {
|
||||
if (!io_helper_1.isNotBlank(inputs.tag))
|
||||
handlerError('Current release not found', inputs.throwing);
|
||||
else {
|
||||
try {
|
||||
const releaseResponse = yield github.repos
|
||||
.getReleaseByTag({ owner, repo, tag: inputs.tag });
|
||||
.getReleaseByTag({
|
||||
owner: inputs.owner,
|
||||
repo: inputs.repo,
|
||||
tag: inputs.tag
|
||||
});
|
||||
if (isSuccessStatusCode(releaseResponse.status))
|
||||
io_helper_1.setOutputs(releaseResponse.data, inputs.debug);
|
||||
else
|
||||
@@ -6015,7 +6020,10 @@ exports.handlerError = handlerError;
|
||||
}
|
||||
}
|
||||
else {
|
||||
const listResponse = yield github.repos.listReleases({ owner, repo });
|
||||
const listResponse = yield github.repos.listReleases({
|
||||
owner: inputs.owner,
|
||||
repo: inputs.repo
|
||||
});
|
||||
if (isSuccessStatusCode(listResponse.status)) {
|
||||
const releaseList = listResponse.data
|
||||
.filter(release => !release.draft &&
|
||||
@@ -6024,8 +6032,12 @@ exports.handlerError = handlerError;
|
||||
const latestRelease = findLatestRelease(releaseList);
|
||||
if (io_helper_1.isNotBlank(latestRelease))
|
||||
io_helper_1.setOutputs(latestRelease, inputs.debug);
|
||||
else
|
||||
handlerError('The latest release was not found', inputs.throwing);
|
||||
else {
|
||||
if (!!inputs.pattern)
|
||||
handlerError(`No release had a tag name matching /${inputs.pattern.source}/`, inputs.throwing);
|
||||
else
|
||||
handlerError('The latest release was not found', inputs.throwing);
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new Error(`Unexpected http ${listResponse.status} during get release list`);
|
||||
@@ -6087,6 +6099,12 @@ function getInputs() {
|
||||
draft: false,
|
||||
prerelease: false
|
||||
};
|
||||
result.owner = core.getInput(constants_1.Inputs.Owner, { required: false });
|
||||
if (isNotBlank(result.owner))
|
||||
result.owner = github_1.context.repo.owner;
|
||||
result.repo = core.getInput(constants_1.Inputs.Repo, { required: false });
|
||||
if (isNotBlank(result.repo))
|
||||
result.repo = github_1.context.repo.repo;
|
||||
const tag = core.getInput(constants_1.Inputs.TagName, { required: false });
|
||||
if (isNotBlank(tag))
|
||||
result.tag = tag.trim();
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
export enum Inputs {
|
||||
Owner = 'owner',
|
||||
Repo = 'repo',
|
||||
TagName = 'tag_name',
|
||||
Latest = 'latest',
|
||||
Pattern = 'pattern',
|
||||
|
||||
+18
-6
@@ -1,5 +1,5 @@
|
||||
import * as core from '@actions/core';
|
||||
import {context, getOctokit} from '@actions/github';
|
||||
import {getOctokit} from '@actions/github';
|
||||
import {getInputs, isNotBlank, ReleaseInputs, setOutputs} from './io-helper';
|
||||
|
||||
export function isSuccessStatusCode(statusCode?: number): boolean {
|
||||
@@ -32,8 +32,6 @@ export function handlerError(message: string, throwing: boolean) {
|
||||
try {
|
||||
const inputs: ReleaseInputs = getInputs();
|
||||
const github = getOctokit(process.env.GITHUB_TOKEN as string);
|
||||
// Get owner and repo from context of payload that triggered the action
|
||||
const {owner, repo} = context.repo;
|
||||
|
||||
if (!inputs.latest) {
|
||||
if (!isNotBlank(inputs.tag))
|
||||
@@ -42,7 +40,11 @@ export function handlerError(message: string, throwing: boolean) {
|
||||
try {
|
||||
// Get a release from the tag name
|
||||
const releaseResponse = await github.repos
|
||||
.getReleaseByTag({owner, repo, tag: inputs.tag});
|
||||
.getReleaseByTag({
|
||||
owner: inputs.owner,
|
||||
repo: inputs.repo,
|
||||
tag: inputs.tag
|
||||
});
|
||||
|
||||
if (isSuccessStatusCode(releaseResponse.status))
|
||||
setOutputs(releaseResponse.data, inputs.debug);
|
||||
@@ -56,7 +58,10 @@ export function handlerError(message: string, throwing: boolean) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const listResponse = await github.repos.listReleases({owner, repo});
|
||||
const listResponse = await github.repos.listReleases({
|
||||
owner: inputs.owner,
|
||||
repo: inputs.repo
|
||||
});
|
||||
|
||||
if (isSuccessStatusCode(listResponse.status)) {
|
||||
const releaseList = listResponse.data
|
||||
@@ -67,7 +72,14 @@ export function handlerError(message: string, throwing: boolean) {
|
||||
const latestRelease: any = findLatestRelease(releaseList);
|
||||
if (isNotBlank(latestRelease))
|
||||
setOutputs(latestRelease, inputs.debug);
|
||||
else handlerError('The latest release was not found', inputs.throwing);
|
||||
else {
|
||||
if (!!inputs.pattern)
|
||||
handlerError(`No release had a tag name matching /${inputs.pattern.source}/`,
|
||||
inputs.throwing);
|
||||
else
|
||||
handlerError('The latest release was not found',
|
||||
inputs.throwing);
|
||||
}
|
||||
} else
|
||||
throw new Error(`Unexpected http ${listResponse.status} during get release list`);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import {context} from '@actions/github';
|
||||
import {Inputs, Outputs} from './constants';
|
||||
|
||||
export interface ReleaseInputs {
|
||||
owner: string;
|
||||
repo: string;
|
||||
tag: string;
|
||||
|
||||
latest: boolean;
|
||||
@@ -35,6 +37,14 @@ export function getInputs(): ReleaseInputs {
|
||||
prerelease: false
|
||||
};
|
||||
|
||||
result.owner = core.getInput(Inputs.Owner, {required: false});
|
||||
if (isNotBlank(result.owner))
|
||||
result.owner = context.repo.owner;
|
||||
|
||||
result.repo = core.getInput(Inputs.Repo, {required: false});
|
||||
if (isNotBlank(result.repo))
|
||||
result.repo = context.repo.repo;
|
||||
|
||||
const tag = core.getInput(Inputs.TagName, {required: false});
|
||||
if (isNotBlank(tag))
|
||||
result.tag = tag.trim();
|
||||
|
||||
Reference in New Issue
Block a user