adopt new internal artifact api behavior

This commit is contained in:
Rob Herley
2023-11-30 21:37:06 -05:00
parent 896d1bb258
commit 6ee005d6b7
2 changed files with 29 additions and 24 deletions
+22 -19
View File
@@ -17,9 +17,9 @@ async function run(): Promise<void> {
const inputs = {
name: core.getInput(Inputs.Name, {required: false}),
path: core.getInput(Inputs.Path, {required: false}),
token: core.getInput(Inputs.GitHubToken, {required: true}),
repository: core.getInput(Inputs.Repository, {required: true}),
runID: parseInt(core.getInput(Inputs.RunID, {required: true}))
token: core.getInput(Inputs.GitHubToken, {required: false}),
repository: core.getInput(Inputs.Repository, {required: false}),
runID: parseInt(core.getInput(Inputs.RunID, {required: false}))
}
if (!inputs.path) {
@@ -33,11 +33,21 @@ async function run(): Promise<void> {
const resolvedPath = path.resolve(inputs.path)
core.debug(`Resolved path is ${resolvedPath}`)
const [owner, repo] = inputs.repository.split('/')
if (!owner || !repo) {
throw new Error(
`Invalid repository: '${inputs.repository}'. Must be in format owner/repo`
)
const options: artifact.FindOptions = {}
if (inputs.token) {
const [repositoryOwner, repositoryName] = inputs.repository.split('/')
if (!repositoryOwner || !repositoryName) {
throw new Error(
`Invalid repository: '${inputs.repository}'. Must be in format owner/repo`
)
}
options.findBy = {
token: inputs.token,
workflowRunId: inputs.runID,
repositoryName,
repositoryOwner
}
}
const artifactClient = artifact.create()
@@ -46,10 +56,7 @@ async function run(): Promise<void> {
if (inputs.name) {
const {artifact: targetArtifact} = await artifactClient.getArtifact(
inputs.name,
inputs.runID,
owner,
repo,
inputs.token
options
)
if (!targetArtifact) {
@@ -62,12 +69,7 @@ async function run(): Promise<void> {
artifacts = [targetArtifact]
} else {
const listArtifactResponse = await artifactClient.listArtifacts(
inputs.runID,
owner,
repo,
inputs.token
)
const listArtifactResponse = await artifactClient.listArtifacts(options)
if (listArtifactResponse.artifacts.length === 0) {
throw new Error(
@@ -80,7 +82,8 @@ async function run(): Promise<void> {
}
const downloadPromises = artifacts.map(artifact =>
artifactClient.downloadArtifact(artifact.id, owner, repo, inputs.token, {
artifactClient.downloadArtifact(artifact.id, {
...options,
path: path.join(resolvedPath, artifact.name)
})
)