mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 15:47:36 +00:00 
			
		
		
		
	.
This commit is contained in:
		
							
								
								
									
										47
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -8380,26 +8380,9 @@ function downloadRepository(accessToken, owner, repo, ref, commit, repositoryPat | ||||
|             const fileStream = fs.createWriteStream(archivePath); | ||||
|             const fileStreamClosed = getFileClosedPromise(fileStream); | ||||
|             try { | ||||
|                 // Get the archive URL using the GitHub REST API | ||||
|                 core.info('Getting archive URL from GitHub REST API'); | ||||
|                 const octokit = new github.GitHub(accessToken); | ||||
|                 const params = { | ||||
|                     method: 'HEAD', | ||||
|                     archive_format: IS_WINDOWS ? 'zipball' : 'tarball', | ||||
|                     owner: owner, | ||||
|                     repo: repo, | ||||
|                     ref: refHelper.getDownloadRef(ref, commit) | ||||
|                 }; | ||||
|                 const response = yield octokit.repos.getArchiveLink(params); | ||||
|                 console.log('GOT THE RESPONSE'); | ||||
|                 console.log(`status=${response.status}`); | ||||
|                 console.log(`headers=${JSON.stringify(response.headers)}`); | ||||
|                 if (response.status != 200) { | ||||
|                     throw new Error(`Unexpected response from GitHub API. Status: '${response.status}'`); | ||||
|                 } | ||||
|                 console.log('GETTING THE LOCATION'); | ||||
|                 const archiveUrl = response.headers['Location']; // Do not print the archive URL because it has an embedded token | ||||
|                 assert.ok(archiveUrl, `Expected GitHub API response to contain 'Location' header`); | ||||
|                 // Get the archive URL | ||||
|                 core.info('Getting archive URL'); | ||||
|                 const archiveUrl = yield getArchiveUrl(accessToken, owner, repo, ref, commit); | ||||
|                 // Download the archive | ||||
|                 core.info('Downloading the archive'); // Do not print the archive URL because it has an embedded token | ||||
|                 yield downloadFile(archiveUrl, fileStream); | ||||
| @@ -8460,6 +8443,30 @@ function downloadRepository(accessToken, owner, repo, ref, commit, repositoryPat | ||||
|     }); | ||||
| } | ||||
| exports.downloadRepository = downloadRepository; | ||||
| function getArchiveUrl(accessToken, owner, repo, ref, commit) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         const octokit = new github.GitHub(accessToken); | ||||
|         const params = { | ||||
|             method: 'HEAD', | ||||
|             owner: owner, | ||||
|             repo: repo, | ||||
|             archive_format: IS_WINDOWS ? 'zipball' : 'tarball', | ||||
|             ref: refHelper.getDownloadRef(ref, commit) | ||||
|         }; | ||||
|         const response = yield octokit.repos.getArchiveLink(params); | ||||
|         console.log('GOT THE RESPONSE'); | ||||
|         console.log(`status=${response.status}`); | ||||
|         console.log(`headers=${JSON.stringify(response.headers)}`); | ||||
|         console.log(`headers=${JSON.stringify(response.data)}`); | ||||
|         if (response.status != 200) { | ||||
|             throw new Error(`Unexpected response from GitHub API. Status: '${response.status}'`); | ||||
|         } | ||||
|         console.log('GETTING THE LOCATION'); | ||||
|         const archiveUrl = response.headers['Location']; // Do not print the archive URL because it has an embedded token | ||||
|         assert.ok(archiveUrl, `Expected GitHub API response to contain 'Location' header`); | ||||
|         return archiveUrl; | ||||
|     }); | ||||
| } | ||||
| function downloadFile(url, fileStream) { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         try { | ||||
|   | ||||
| @@ -40,30 +40,14 @@ export async function downloadRepository( | ||||
|     const fileStreamClosed = getFileClosedPromise(fileStream) | ||||
|  | ||||
|     try { | ||||
|       // Get the archive URL using the GitHub REST API | ||||
|       core.info('Getting archive URL from GitHub REST API') | ||||
|       const octokit = new github.GitHub(accessToken) | ||||
|       const params: RequestOptions & ReposGetArchiveLinkParams = { | ||||
|         method: 'HEAD', | ||||
|         archive_format: IS_WINDOWS ? 'zipball' : 'tarball', | ||||
|         owner: owner, | ||||
|         repo: repo, | ||||
|         ref: refHelper.getDownloadRef(ref, commit) | ||||
|       } | ||||
|       const response = await octokit.repos.getArchiveLink(params) | ||||
|       console.log('GOT THE RESPONSE') | ||||
|       console.log(`status=${response.status}`) | ||||
|       console.log(`headers=${JSON.stringify(response.headers)}`) | ||||
|       if (response.status != 200) { | ||||
|         throw new Error( | ||||
|           `Unexpected response from GitHub API. Status: '${response.status}'` | ||||
|         ) | ||||
|       } | ||||
|       console.log('GETTING THE LOCATION') | ||||
|       const archiveUrl = response.headers['Location'] // Do not print the archive URL because it has an embedded token | ||||
|       assert.ok( | ||||
|         archiveUrl, | ||||
|         `Expected GitHub API response to contain 'Location' header` | ||||
|       // Get the archive URL | ||||
|       core.info('Getting archive URL') | ||||
|       const archiveUrl = await getArchiveUrl( | ||||
|         accessToken, | ||||
|         owner, | ||||
|         repo, | ||||
|         ref, | ||||
|         commit | ||||
|       ) | ||||
|  | ||||
|       // Download the archive | ||||
| @@ -137,6 +121,40 @@ export async function downloadRepository( | ||||
|   } as ExecOptions) | ||||
| } | ||||
|  | ||||
| async function getArchiveUrl( | ||||
|   accessToken: string, | ||||
|   owner: string, | ||||
|   repo: string, | ||||
|   ref: string, | ||||
|   commit: string | ||||
| ): Promise<string> { | ||||
|   const octokit = new github.GitHub(accessToken) | ||||
|   const params: RequestOptions & ReposGetArchiveLinkParams = { | ||||
|     method: 'HEAD', | ||||
|     owner: owner, | ||||
|     repo: repo, | ||||
|     archive_format: IS_WINDOWS ? 'zipball' : 'tarball', | ||||
|     ref: refHelper.getDownloadRef(ref, commit) | ||||
|   } | ||||
|   const response = await octokit.repos.getArchiveLink(params) | ||||
|   console.log('GOT THE RESPONSE') | ||||
|   console.log(`status=${response.status}`) | ||||
|   console.log(`headers=${JSON.stringify(response.headers)}`) | ||||
|   console.log(`headers=${JSON.stringify(response.data)}`) | ||||
|   if (response.status != 200) { | ||||
|     throw new Error( | ||||
|       `Unexpected response from GitHub API. Status: '${response.status}'` | ||||
|     ) | ||||
|   } | ||||
|   console.log('GETTING THE LOCATION') | ||||
|   const archiveUrl = response.headers['Location'] // Do not print the archive URL because it has an embedded token | ||||
|   assert.ok( | ||||
|     archiveUrl, | ||||
|     `Expected GitHub API response to contain 'Location' header` | ||||
|   ) | ||||
|   return archiveUrl | ||||
| } | ||||
|  | ||||
| function downloadFile(url: string, fileStream: WriteStream): Promise<void> { | ||||
|   return new Promise((resolve, reject) => { | ||||
|     try { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 eric sciple
					eric sciple