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: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|  |       - uses: actions/setup-node@v1 | ||||||
|  |         with: | ||||||
|  |           node-version: 12.x | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v2 | ||||||
|       - run: npm ci |       - run: npm ci | ||||||
|       - run: npm run build |       - run: npm run build | ||||||
| @ -83,16 +86,92 @@ jobs: | |||||||
|         shell: bash |         shell: bash | ||||||
|         run: __test__/verify-lfs.sh |         run: __test__/verify-lfs.sh | ||||||
| 
 | 
 | ||||||
|   test-job-container: |       # Basic checkout using REST API | ||||||
|     runs-on: ubuntu-latest |       - name: Remove basic | ||||||
|     container: alpine:latest |         if: runner.os != 'windows' | ||||||
|     steps: |         run: rm -rf basic | ||||||
|       # Clone this repo |       - name: Remove basic (Windows) | ||||||
|       - name: Checkout |         if: runner.os == 'windows' | ||||||
|         uses: actions/checkout@v2 |         shell: cmd | ||||||
| 
 |         run: rmdir /s /q basic | ||||||
|       # Basic checkout |       - name: Override git version | ||||||
|       - name: Basic checkout |         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: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
|           ref: test-data/v2/basic |           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", |   "name": "checkout", | ||||||
|   "version": "2.0.0", |   "version": "2.0.2", | ||||||
|   "lockfileVersion": 1, |   "lockfileVersion": 1, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
| @ -15,14 +15,30 @@ | |||||||
|       "integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==" |       "integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==" | ||||||
|     }, |     }, | ||||||
|     "@actions/github": { |     "@actions/github": { | ||||||
|       "version": "2.0.0", |       "version": "2.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.1.0.tgz", | ||||||
|       "integrity": "sha512-sNpZ5dJyJyfJIO5lNYx8r/Gha4Tlm8R0MLO2cBkGdOnAAEn3t1M/MHVcoBhY/VPfjGVe5RNAUPz+6INrViiUPA==", |       "integrity": "sha512-G4ncMlh4pLLAvNgHUYUtpWQ1zPf/VYqmRH9oshxLabdaOOnp7i1hgSgzr2xne2YUaSND3uqemd3YYTIsm2f/KQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|  |         "@actions/http-client": "^1.0.3", | ||||||
|         "@octokit/graphql": "^4.3.1", |         "@octokit/graphql": "^4.3.1", | ||||||
|         "@octokit/rest": "^16.15.0" |         "@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": { |     "@actions/io": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz", | ||||||
| @ -597,6 +613,14 @@ | |||||||
|         "@types/yargs": "^13.0.0" |         "@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": { |     "@octokit/endpoint": { | ||||||
|       "version": "5.5.1", |       "version": "5.5.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", |       "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", | ||||||
| @ -643,10 +667,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@octokit/rest": { |     "@octokit/rest": { | ||||||
|       "version": "16.35.0", |       "version": "16.38.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.35.0.tgz", |       "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz", | ||||||
|       "integrity": "sha512-9ShFqYWo0CLoGYhA1FdtdykJuMzS/9H6vSbbQWDX4pWr4p9v+15MsH/wpd/3fIU+tSxylaNO48+PIHqOkBRx3w==", |       "integrity": "sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==", | ||||||
|       "requires": { |       "requires": { | ||||||
|  |         "@octokit/auth-token": "^2.4.0", | ||||||
|         "@octokit/request": "^5.2.0", |         "@octokit/request": "^5.2.0", | ||||||
|         "@octokit/request-error": "^1.0.2", |         "@octokit/request-error": "^1.0.2", | ||||||
|         "atob-lite": "^2.0.0", |         "atob-lite": "^2.0.0", | ||||||
| @ -662,9 +687,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@octokit/types": { |     "@octokit/types": { | ||||||
|       "version": "2.0.2", |       "version": "2.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", |       "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.1.tgz", | ||||||
|       "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", |       "integrity": "sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@types/node": ">= 8" |         "@types/node": ">= 8" | ||||||
|       } |       } | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "2.0.1", |   "version": "2.0.2", | ||||||
|   "description": "checkout action", |   "description": "checkout action", | ||||||
|   "main": "lib/main.js", |   "main": "lib/main.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
| @ -31,7 +31,7 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/core": "^1.1.3", |     "@actions/core": "^1.1.3", | ||||||
|     "@actions/exec": "^1.0.1", |     "@actions/exec": "^1.0.1", | ||||||
|     "@actions/github": "^2.0.0", |     "@actions/github": "^2.0.2", | ||||||
|     "@actions/io": "^1.0.1", |     "@actions/io": "^1.0.1", | ||||||
|     "@actions/tool-cache": "^1.1.2", |     "@actions/tool-cache": "^1.1.2", | ||||||
|     "uuid": "^3.3.3" |     "uuid": "^3.3.3" | ||||||
|  | |||||||
| @ -9,7 +9,8 @@ import * as refHelper from './ref-helper' | |||||||
| import * as stateHelper from './state-helper' | import * as stateHelper from './state-helper' | ||||||
| import {IGitCommandManager} from './git-command-manager' | 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 { | export interface ISourceSettings { | ||||||
|   repositoryPath: string |   repositoryPath: string | ||||||
| @ -95,7 +96,7 @@ export async function getSource(settings: ISourceSettings): Promise<void> { | |||||||
|     await removeGitConfig(git, authConfigKey) |     await removeGitConfig(git, authConfigKey) | ||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|       // Config auth token
 |       // Config extraheader
 | ||||||
|       await configureAuthToken(git, settings.authToken) |       await configureAuthToken(git, settings.authToken) | ||||||
| 
 | 
 | ||||||
|       // LFS install
 |       // LFS install
 | ||||||
| @ -136,16 +137,21 @@ export async function getSource(settings: ISourceSettings): Promise<void> { | |||||||
| 
 | 
 | ||||||
| export async function cleanup(repositoryPath: string): Promise<void> { | export async function cleanup(repositoryPath: string): Promise<void> { | ||||||
|   // Repo exists?
 |   // Repo exists?
 | ||||||
|   if (!fsHelper.fileExistsSync(path.join(repositoryPath, '.git', 'config'))) { |   if ( | ||||||
|  |     !repositoryPath || | ||||||
|  |     !fsHelper.fileExistsSync(path.join(repositoryPath, '.git', 'config')) | ||||||
|  |   ) { | ||||||
|     return |     return | ||||||
|   } |   } | ||||||
|   fsHelper.directoryExistsSync(repositoryPath, true) |  | ||||||
| 
 | 
 | ||||||
|   // Remove the config key
 |   let git: IGitCommandManager | ||||||
|   const git = await gitCommandManager.CreateCommandManager( |   try { | ||||||
|     repositoryPath, |     git = await gitCommandManager.CreateCommandManager(repositoryPath, false) | ||||||
|     false |   } catch { | ||||||
|   ) |     return | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // Remove extraheader
 | ||||||
|   await removeGitConfig(git, authConfigKey) |   await removeGitConfig(git, authConfigKey) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 eric sciple
						eric sciple