mirror of
				https://github.com/actions/upload-artifact.git
				synced 2025-10-31 23:03:43 +00:00 
			
		
		
		
	Support artifact-url output (#496)
* Support artifact-url output * update dist/index.js * Update license * Simplify output * Update README
This commit is contained in:
		
							parent
							
								
									c320f57948
								
							
						
					
					
						commit
						73d8b66ede
					
				
							
								
								
									
										2
									
								
								.licenses/npm/@actions/github.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/github.dep.yml
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| --- | ||||
| name: "@actions/github" | ||||
| version: 5.1.1 | ||||
| version: 6.0.0 | ||||
| type: npm | ||||
| summary: Actions github lib | ||||
| homepage: https://github.com/actions/toolkit/tree/main/packages/github | ||||
|  | ||||
| @ -99,6 +99,7 @@ For assistance with breaking changes, see [MIGRATION.md](docs/MIGRATION.md). | ||||
| | Name | Description | Example | | ||||
| | - | - | - | | ||||
| | `artifact-id` | GitHub ID of an Artifact, can be used by the REST API | `1234` | | ||||
| | `artifact-url` | URL to download an Artifact. Can be used in many scenarios such as linking to artifacts in issues or pull requests. Users must be logged-in in order for this URL to work. This URL is valid as long as the artifact has not expired or the artifact, run or repository have not been deleted | `https://github.com/example-org/example-repo/actions/runs/1/artifacts/1234` | | ||||
| 
 | ||||
| ## Examples | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										11
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								action.yml
									
									
									
									
									
								
							| @ -38,9 +38,18 @@ inputs: | ||||
| outputs: | ||||
|   artifact-id: | ||||
|     description: > | ||||
|       A unique identifier for the artifact that was just uploaded. Empty if artifact upload failed. | ||||
|       A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed. | ||||
| 
 | ||||
|       This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts | ||||
|   artifact-url: | ||||
|     description: > | ||||
|       A download URL for the artifact that was just uploaded. Empty if the artifact upload failed. | ||||
| 
 | ||||
|       This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login.  | ||||
|       If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact     | ||||
| 
 | ||||
|       This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. | ||||
|       Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues. | ||||
| runs: | ||||
|   using: 'node20' | ||||
|   main: 'dist/index.js' | ||||
|  | ||||
							
								
								
									
										3925
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3925
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										238
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										238
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -11,6 +11,7 @@ | ||||
|       "dependencies": { | ||||
|         "@actions/artifact": "^2.0.0", | ||||
|         "@actions/core": "^1.10.0", | ||||
|         "@actions/github": "^6.0.0", | ||||
|         "@actions/glob": "^0.3.0", | ||||
|         "@actions/io": "^1.1.2" | ||||
|       }, | ||||
| @ -52,6 +53,17 @@ | ||||
|         "unzip-stream": "^0.3.1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/artifact/node_modules/@actions/github": { | ||||
|       "version": "5.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", | ||||
|       "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", | ||||
|       "dependencies": { | ||||
|         "@actions/http-client": "^2.0.1", | ||||
|         "@octokit/core": "^3.6.0", | ||||
|         "@octokit/plugin-paginate-rest": "^2.17.0", | ||||
|         "@octokit/plugin-rest-endpoint-methods": "^5.13.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/core": { | ||||
|       "version": "1.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", | ||||
| @ -62,14 +74,119 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github": { | ||||
|       "version": "5.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", | ||||
|       "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", | ||||
|       "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", | ||||
|       "dependencies": { | ||||
|         "@actions/http-client": "^2.0.1", | ||||
|         "@octokit/core": "^3.6.0", | ||||
|         "@octokit/plugin-paginate-rest": "^2.17.0", | ||||
|         "@octokit/plugin-rest-endpoint-methods": "^5.13.0" | ||||
|         "@actions/http-client": "^2.2.0", | ||||
|         "@octokit/core": "^5.0.1", | ||||
|         "@octokit/plugin-paginate-rest": "^9.0.0", | ||||
|         "@octokit/plugin-rest-endpoint-methods": "^10.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/auth-token": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", | ||||
|       "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/core": { | ||||
|       "version": "5.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.2.tgz", | ||||
|       "integrity": "sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==", | ||||
|       "dependencies": { | ||||
|         "@octokit/auth-token": "^4.0.0", | ||||
|         "@octokit/graphql": "^7.0.0", | ||||
|         "@octokit/request": "^8.0.2", | ||||
|         "@octokit/request-error": "^5.0.0", | ||||
|         "@octokit/types": "^12.0.0", | ||||
|         "before-after-hook": "^2.2.0", | ||||
|         "universal-user-agent": "^6.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/endpoint": { | ||||
|       "version": "9.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", | ||||
|       "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", | ||||
|       "dependencies": { | ||||
|         "@octokit/types": "^12.0.0", | ||||
|         "universal-user-agent": "^6.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/graphql": { | ||||
|       "version": "7.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", | ||||
|       "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", | ||||
|       "dependencies": { | ||||
|         "@octokit/request": "^8.0.1", | ||||
|         "@octokit/types": "^12.0.0", | ||||
|         "universal-user-agent": "^6.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/openapi-types": { | ||||
|       "version": "19.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", | ||||
|       "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==" | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/plugin-paginate-rest": { | ||||
|       "version": "9.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", | ||||
|       "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", | ||||
|       "dependencies": { | ||||
|         "@octokit/types": "^12.4.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@octokit/core": ">=5" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods": { | ||||
|       "version": "10.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz", | ||||
|       "integrity": "sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==", | ||||
|       "dependencies": { | ||||
|         "@octokit/types": "^12.3.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@octokit/core": ">=5" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/request": { | ||||
|       "version": "8.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz", | ||||
|       "integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==", | ||||
|       "dependencies": { | ||||
|         "@octokit/endpoint": "^9.0.0", | ||||
|         "@octokit/request-error": "^5.0.0", | ||||
|         "@octokit/types": "^12.0.0", | ||||
|         "universal-user-agent": "^6.0.0" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 18" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/github/node_modules/@octokit/types": { | ||||
|       "version": "12.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz", | ||||
|       "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==", | ||||
|       "dependencies": { | ||||
|         "@octokit/openapi-types": "^19.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/glob": { | ||||
| @ -7419,6 +7536,19 @@ | ||||
|         "jwt-decode": "^3.1.2", | ||||
|         "twirp-ts": "^2.5.0", | ||||
|         "unzip-stream": "^0.3.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "@actions/github": { | ||||
|           "version": "5.1.1", | ||||
|           "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", | ||||
|           "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", | ||||
|           "requires": { | ||||
|             "@actions/http-client": "^2.0.1", | ||||
|             "@octokit/core": "^3.6.0", | ||||
|             "@octokit/plugin-paginate-rest": "^2.17.0", | ||||
|             "@octokit/plugin-rest-endpoint-methods": "^5.13.0" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@actions/core": { | ||||
| @ -7431,14 +7561,94 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@actions/github": { | ||||
|       "version": "5.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", | ||||
|       "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", | ||||
|       "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", | ||||
|       "requires": { | ||||
|         "@actions/http-client": "^2.0.1", | ||||
|         "@octokit/core": "^3.6.0", | ||||
|         "@octokit/plugin-paginate-rest": "^2.17.0", | ||||
|         "@octokit/plugin-rest-endpoint-methods": "^5.13.0" | ||||
|         "@actions/http-client": "^2.2.0", | ||||
|         "@octokit/core": "^5.0.1", | ||||
|         "@octokit/plugin-paginate-rest": "^9.0.0", | ||||
|         "@octokit/plugin-rest-endpoint-methods": "^10.0.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "@octokit/auth-token": { | ||||
|           "version": "4.0.0", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", | ||||
|           "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==" | ||||
|         }, | ||||
|         "@octokit/core": { | ||||
|           "version": "5.0.2", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.2.tgz", | ||||
|           "integrity": "sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==", | ||||
|           "requires": { | ||||
|             "@octokit/auth-token": "^4.0.0", | ||||
|             "@octokit/graphql": "^7.0.0", | ||||
|             "@octokit/request": "^8.0.2", | ||||
|             "@octokit/request-error": "^5.0.0", | ||||
|             "@octokit/types": "^12.0.0", | ||||
|             "before-after-hook": "^2.2.0", | ||||
|             "universal-user-agent": "^6.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/endpoint": { | ||||
|           "version": "9.0.4", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", | ||||
|           "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", | ||||
|           "requires": { | ||||
|             "@octokit/types": "^12.0.0", | ||||
|             "universal-user-agent": "^6.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/graphql": { | ||||
|           "version": "7.0.2", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", | ||||
|           "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", | ||||
|           "requires": { | ||||
|             "@octokit/request": "^8.0.1", | ||||
|             "@octokit/types": "^12.0.0", | ||||
|             "universal-user-agent": "^6.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/openapi-types": { | ||||
|           "version": "19.1.0", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", | ||||
|           "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==" | ||||
|         }, | ||||
|         "@octokit/plugin-paginate-rest": { | ||||
|           "version": "9.1.5", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", | ||||
|           "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", | ||||
|           "requires": { | ||||
|             "@octokit/types": "^12.4.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/plugin-rest-endpoint-methods": { | ||||
|           "version": "10.2.0", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz", | ||||
|           "integrity": "sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==", | ||||
|           "requires": { | ||||
|             "@octokit/types": "^12.3.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/request": { | ||||
|           "version": "8.1.6", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz", | ||||
|           "integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==", | ||||
|           "requires": { | ||||
|             "@octokit/endpoint": "^9.0.0", | ||||
|             "@octokit/request-error": "^5.0.0", | ||||
|             "@octokit/types": "^12.0.0", | ||||
|             "universal-user-agent": "^6.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "@octokit/types": { | ||||
|           "version": "12.4.0", | ||||
|           "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz", | ||||
|           "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==", | ||||
|           "requires": { | ||||
|             "@octokit/openapi-types": "^19.1.0" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@actions/glob": { | ||||
|  | ||||
| @ -31,6 +31,7 @@ | ||||
|   "dependencies": { | ||||
|     "@actions/artifact": "^2.0.0", | ||||
|     "@actions/core": "^1.10.0", | ||||
|     "@actions/github": "^6.0.0", | ||||
|     "@actions/glob": "^0.3.0", | ||||
|     "@actions/io": "^1.1.2" | ||||
|   }, | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| import * as core from '@actions/core' | ||||
| import * as github from '@actions/github' | ||||
| import artifact, {UploadArtifactOptions} from '@actions/artifact' | ||||
| import {findFilesToUpload} from './search' | ||||
| import {getInputs} from './input-helper' | ||||
| @ -57,6 +58,12 @@ async function run(): Promise<void> { | ||||
|         `Artifact ${inputs.artifactName} has been successfully uploaded! Final size is ${uploadResponse.size} bytes. Artifact ID is ${uploadResponse.id}` | ||||
|       ) | ||||
|       core.setOutput('artifact-id', uploadResponse.id) | ||||
| 
 | ||||
|       const repository = github.context.repo | ||||
|       const artifactURL = `${github.context.serverUrl}/${repository.owner}/${repository.repo}/actions/runs/${github.context.runId}/artifacts/${uploadResponse.id}` | ||||
| 
 | ||||
|       core.info(`Artifact download URL: ${artifactURL}`) | ||||
|       core.setOutput('artifact-url', artifactURL) | ||||
|     } | ||||
|   } catch (error) { | ||||
|     core.setFailed((error as Error).message) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user