mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 10:24:20 +08:00 
			
		
		
		
	follow proxy settings (#144)
This commit is contained in:
		
							parent
							
								
									090d9c9dfd
								
							
						
					
					
						commit
						f90c7b395d
					
				
							
								
								
									
										99
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @ -11,6 +11,9 @@ jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/setup-node@v1 | ||||
|         with: | ||||
|           node-version: 12.x | ||||
|       - uses: actions/checkout@v2 | ||||
|       - run: npm ci | ||||
|       - run: npm run build | ||||
| @ -83,16 +86,92 @@ jobs: | ||||
|         shell: bash | ||||
|         run: __test__/verify-lfs.sh | ||||
| 
 | ||||
|   test-job-container: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: alpine:latest | ||||
|     steps: | ||||
|       # Clone this repo | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       # Basic checkout | ||||
|       - name: Basic checkout | ||||
|       # Basic checkout using REST API | ||||
|       - name: Remove basic | ||||
|         if: runner.os != 'windows' | ||||
|         run: rm -rf basic | ||||
|       - name: Remove basic (Windows) | ||||
|         if: runner.os == 'windows' | ||||
|         shell: cmd | ||||
|         run: rmdir /s /q basic | ||||
|       - name: Override git version | ||||
|         if: runner.os != 'windows' | ||||
|         run: __test__/override-git-version.sh | ||||
|       - name: Override git version (Windows) | ||||
|         if: runner.os == 'windows' | ||||
|         run: __test__\\override-git-version.cmd | ||||
|       - name: Basic checkout using REST API | ||||
|         uses: ./ | ||||
|         with: | ||||
|           ref: test-data/v2/basic | ||||
|           path: basic | ||||
|       - name: Verify basic | ||||
|         run: __test__/verify-basic.sh --archive | ||||
| 
 | ||||
|   test-proxy: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: alpine/git:latest | ||||
|       options: --dns 127.0.0.1 | ||||
|     services: | ||||
|       squid-proxy: | ||||
|         image: datadog/squid:latest | ||||
|         ports: | ||||
|           - 3128:3128 | ||||
|     env: | ||||
|       https_proxy: http://squid-proxy:3128 | ||||
|     steps: | ||||
|       # Clone this repo | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@users/ericsciple/m165proxy # todo: switch to v2 | ||||
| 
 | ||||
|       # Basic checkout using git | ||||
|       - name: Basic checkout | ||||
|         uses: ./ | ||||
|         with: | ||||
|           ref: test-data/v2/basic | ||||
|           path: basic | ||||
|       - name: Verify basic | ||||
|         run: __test__/verify-basic.sh | ||||
| 
 | ||||
|       # Basic checkout using REST API | ||||
|       - name: Remove basic | ||||
|         run: rm -rf basic | ||||
|       - name: Override git version | ||||
|         run: __test__/override-git-version.sh | ||||
|       - name: Basic checkout using REST API | ||||
|         uses: ./ | ||||
|         with: | ||||
|           ref: test-data/v2/basic | ||||
|           path: basic | ||||
|       - name: Verify basic | ||||
|         run: __test__/verify-basic.sh --archive | ||||
| 
 | ||||
|   test-bypass-proxy: | ||||
|     runs-on: ubuntu-latest | ||||
|     env: | ||||
|       https_proxy: http://no-such-proxy:3128 | ||||
|       no_proxy: api.github.com,github.com | ||||
|     steps: | ||||
|       # Clone this repo | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       # Basic checkout using git | ||||
|       - name: Basic checkout | ||||
|         uses: ./ | ||||
|         with: | ||||
|           ref: test-data/v2/basic | ||||
|           path: basic | ||||
|       - name: Verify basic | ||||
|         run: __test__/verify-basic.sh | ||||
|       - name: Remove basic | ||||
|         run: rm -rf basic | ||||
| 
 | ||||
|       # Basic checkout using REST API | ||||
|       - name: Override git version | ||||
|         run: __test__/override-git-version.sh | ||||
|       - name: Basic checkout using REST API | ||||
|         uses: ./ | ||||
|         with: | ||||
|           ref: test-data/v2/basic | ||||
|  | ||||
							
								
								
									
										6
									
								
								__test__/override-git-version.cmd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								__test__/override-git-version.cmd
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,6 @@ | ||||
| 
 | ||||
| mkdir override-git-version | ||||
| cd override-git-version | ||||
| echo @echo override git version 1.2.3 > git.cmd | ||||
| echo ::add-path::%CD% | ||||
| cd .. | ||||
							
								
								
									
										9
									
								
								__test__/override-git-version.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								__test__/override-git-version.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,9 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| mkdir override-git-version | ||||
| cd override-git-version | ||||
| echo "#!/bin/sh" > git | ||||
| echo "echo override git version 1.2.3" >> git | ||||
| chmod +x git | ||||
| echo "::add-path::$(pwd)" | ||||
| cd .. | ||||
							
								
								
									
										969
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										969
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										45
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										45
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "checkout", | ||||
|   "version": "2.0.0", | ||||
|   "version": "2.0.2", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
| @ -15,14 +15,30 @@ | ||||
|       "integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==" | ||||
|     }, | ||||
|     "@actions/github": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.0.0.tgz", | ||||
|       "integrity": "sha512-sNpZ5dJyJyfJIO5lNYx8r/Gha4Tlm8R0MLO2cBkGdOnAAEn3t1M/MHVcoBhY/VPfjGVe5RNAUPz+6INrViiUPA==", | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.1.0.tgz", | ||||
|       "integrity": "sha512-G4ncMlh4pLLAvNgHUYUtpWQ1zPf/VYqmRH9oshxLabdaOOnp7i1hgSgzr2xne2YUaSND3uqemd3YYTIsm2f/KQ==", | ||||
|       "requires": { | ||||
|         "@actions/http-client": "^1.0.3", | ||||
|         "@octokit/graphql": "^4.3.1", | ||||
|         "@octokit/rest": "^16.15.0" | ||||
|       } | ||||
|     }, | ||||
|     "@actions/http-client": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.3.tgz", | ||||
|       "integrity": "sha512-wFwh1U4adB/Zsk4cc9kVqaBOHoknhp/pJQk+aWTocbAZWpIl4Zx/At83WFRLXvxB+5HVTWOACM6qjULMZfQSfw==", | ||||
|       "requires": { | ||||
|         "tunnel": "0.0.6" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "tunnel": { | ||||
|           "version": "0.0.6", | ||||
|           "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", | ||||
|           "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@actions/io": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz", | ||||
| @ -597,6 +613,14 @@ | ||||
|         "@types/yargs": "^13.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@octokit/auth-token": { | ||||
|       "version": "2.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", | ||||
|       "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", | ||||
|       "requires": { | ||||
|         "@octokit/types": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@octokit/endpoint": { | ||||
|       "version": "5.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", | ||||
| @ -643,10 +667,11 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@octokit/rest": { | ||||
|       "version": "16.35.0", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.35.0.tgz", | ||||
|       "integrity": "sha512-9ShFqYWo0CLoGYhA1FdtdykJuMzS/9H6vSbbQWDX4pWr4p9v+15MsH/wpd/3fIU+tSxylaNO48+PIHqOkBRx3w==", | ||||
|       "version": "16.38.1", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz", | ||||
|       "integrity": "sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==", | ||||
|       "requires": { | ||||
|         "@octokit/auth-token": "^2.4.0", | ||||
|         "@octokit/request": "^5.2.0", | ||||
|         "@octokit/request-error": "^1.0.2", | ||||
|         "atob-lite": "^2.0.0", | ||||
| @ -662,9 +687,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@octokit/types": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", | ||||
|       "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.1.tgz", | ||||
|       "integrity": "sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ==", | ||||
|       "requires": { | ||||
|         "@types/node": ">= 8" | ||||
|       } | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "checkout", | ||||
|   "version": "2.0.1", | ||||
|   "version": "2.0.2", | ||||
|   "description": "checkout action", | ||||
|   "main": "lib/main.js", | ||||
|   "scripts": { | ||||
| @ -31,7 +31,7 @@ | ||||
|   "dependencies": { | ||||
|     "@actions/core": "^1.1.3", | ||||
|     "@actions/exec": "^1.0.1", | ||||
|     "@actions/github": "^2.0.0", | ||||
|     "@actions/github": "^2.0.2", | ||||
|     "@actions/io": "^1.0.1", | ||||
|     "@actions/tool-cache": "^1.1.2", | ||||
|     "uuid": "^3.3.3" | ||||
|  | ||||
| @ -9,7 +9,8 @@ import * as refHelper from './ref-helper' | ||||
| import * as stateHelper from './state-helper' | ||||
| import {IGitCommandManager} from './git-command-manager' | ||||
| 
 | ||||
| const authConfigKey = `http.https://github.com/.extraheader` | ||||
| const serverUrl = 'https://github.com/' | ||||
| const authConfigKey = `http.${serverUrl}.extraheader` | ||||
| 
 | ||||
| export interface ISourceSettings { | ||||
|   repositoryPath: string | ||||
| @ -95,7 +96,7 @@ export async function getSource(settings: ISourceSettings): Promise<void> { | ||||
|     await removeGitConfig(git, authConfigKey) | ||||
| 
 | ||||
|     try { | ||||
|       // Config auth token
 | ||||
|       // Config extraheader
 | ||||
|       await configureAuthToken(git, settings.authToken) | ||||
| 
 | ||||
|       // LFS install
 | ||||
| @ -136,16 +137,21 @@ export async function getSource(settings: ISourceSettings): Promise<void> { | ||||
| 
 | ||||
| export async function cleanup(repositoryPath: string): Promise<void> { | ||||
|   // Repo exists?
 | ||||
|   if (!fsHelper.fileExistsSync(path.join(repositoryPath, '.git', 'config'))) { | ||||
|   if ( | ||||
|     !repositoryPath || | ||||
|     !fsHelper.fileExistsSync(path.join(repositoryPath, '.git', 'config')) | ||||
|   ) { | ||||
|     return | ||||
|   } | ||||
|   fsHelper.directoryExistsSync(repositoryPath, true) | ||||
| 
 | ||||
|   // Remove the config key
 | ||||
|   const git = await gitCommandManager.CreateCommandManager( | ||||
|     repositoryPath, | ||||
|     false | ||||
|   ) | ||||
|   let git: IGitCommandManager | ||||
|   try { | ||||
|     git = await gitCommandManager.CreateCommandManager(repositoryPath, false) | ||||
|   } catch { | ||||
|     return | ||||
|   } | ||||
| 
 | ||||
|   // Remove extraheader
 | ||||
|   await removeGitConfig(git, authConfigKey) | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 eric sciple
						eric sciple