mirror of
https://github.com/actions/download-artifact.git
synced 2026-09-22 11:21:28 +00:00
adopt new internal artifact api behavior
This commit is contained in:
+22
-19
@@ -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)
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user