mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-01 02:58:26 +08:00 
			
		
		
		
	.
This commit is contained in:
		
							parent
							
								
									0b63af4c8c
								
							
						
					
					
						commit
						0fa906a067
					
				
							
								
								
									
										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 fileStream = fs.createWriteStream(archivePath); | ||||||
|             const fileStreamClosed = getFileClosedPromise(fileStream); |             const fileStreamClosed = getFileClosedPromise(fileStream); | ||||||
|             try { |             try { | ||||||
|                 // Get the archive URL using the GitHub REST API
 |                 // Get the archive URL
 | ||||||
|                 core.info('Getting archive URL from GitHub REST API'); |                 core.info('Getting archive URL'); | ||||||
|                 const octokit = new github.GitHub(accessToken); |                 const archiveUrl = yield getArchiveUrl(accessToken, owner, repo, ref, commit); | ||||||
|                 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`); |  | ||||||
|                 // Download the archive
 |                 // Download the archive
 | ||||||
|                 core.info('Downloading the archive'); // Do not print the archive URL because it has an embedded token
 |                 core.info('Downloading the archive'); // Do not print the archive URL because it has an embedded token
 | ||||||
|                 yield downloadFile(archiveUrl, fileStream); |                 yield downloadFile(archiveUrl, fileStream); | ||||||
| @ -8460,6 +8443,30 @@ function downloadRepository(accessToken, owner, repo, ref, commit, repositoryPat | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.downloadRepository = downloadRepository; | 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) { | function downloadFile(url, fileStream) { | ||||||
|     return new Promise((resolve, reject) => { |     return new Promise((resolve, reject) => { | ||||||
|         try { |         try { | ||||||
|  | |||||||
| @ -40,30 +40,14 @@ export async function downloadRepository( | |||||||
|     const fileStreamClosed = getFileClosedPromise(fileStream) |     const fileStreamClosed = getFileClosedPromise(fileStream) | ||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|       // Get the archive URL using the GitHub REST API
 |       // Get the archive URL
 | ||||||
|       core.info('Getting archive URL from GitHub REST API') |       core.info('Getting archive URL') | ||||||
|       const octokit = new github.GitHub(accessToken) |       const archiveUrl = await getArchiveUrl( | ||||||
|       const params: RequestOptions & ReposGetArchiveLinkParams = { |         accessToken, | ||||||
|         method: 'HEAD', |         owner, | ||||||
|         archive_format: IS_WINDOWS ? 'zipball' : 'tarball', |         repo, | ||||||
|         owner: owner, |         ref, | ||||||
|         repo: repo, |         commit | ||||||
|         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` |  | ||||||
|       ) |       ) | ||||||
| 
 | 
 | ||||||
|       // Download the archive
 |       // Download the archive
 | ||||||
| @ -137,6 +121,40 @@ export async function downloadRepository( | |||||||
|   } as ExecOptions) |   } 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> { | function downloadFile(url: string, fileStream: WriteStream): Promise<void> { | ||||||
|   return new Promise((resolve, reject) => { |   return new Promise((resolve, reject) => { | ||||||
|     try { |     try { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user