mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 18:18:37 +08:00 
			
		
		
		
	Merge 3a869dd9a6 into 61b9e3751b
				
					
				
			This commit is contained in:
		
						commit
						e392c561d9
					
				|  | @ -1,6 +1,6 @@ | ||||||
| { | { | ||||||
|   "plugins": ["jest", "@typescript-eslint"], |   "plugins": ["jest", "@typescript-eslint"], | ||||||
|   "extends": ["plugin:github/es6"], |   "extends": ["plugin:github/recommended"], | ||||||
|   "parser": "@typescript-eslint/parser", |   "parser": "@typescript-eslint/parser", | ||||||
|   "parserOptions": { |   "parserOptions": { | ||||||
|     "ecmaVersion": 9, |     "ecmaVersion": 9, | ||||||
|  | @ -16,23 +16,19 @@ | ||||||
|     "@typescript-eslint/no-require-imports": "error", |     "@typescript-eslint/no-require-imports": "error", | ||||||
|     "@typescript-eslint/array-type": "error", |     "@typescript-eslint/array-type": "error", | ||||||
|     "@typescript-eslint/await-thenable": "error", |     "@typescript-eslint/await-thenable": "error", | ||||||
|     "@typescript-eslint/ban-ts-ignore": "error", |  | ||||||
|     "camelcase": "off", |     "camelcase": "off", | ||||||
|     "@typescript-eslint/camelcase": "error", |  | ||||||
|     "@typescript-eslint/class-name-casing": "error", |  | ||||||
|     "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}], |     "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}], | ||||||
|     "@typescript-eslint/func-call-spacing": ["error", "never"], |     "@typescript-eslint/func-call-spacing": ["error", "never"], | ||||||
|     "@typescript-eslint/generic-type-naming": ["error", "^[A-Z][A-Za-z]*$"], |  | ||||||
|     "@typescript-eslint/no-array-constructor": "error", |     "@typescript-eslint/no-array-constructor": "error", | ||||||
|     "@typescript-eslint/no-empty-interface": "error", |     "@typescript-eslint/no-empty-interface": "error", | ||||||
|     "@typescript-eslint/no-explicit-any": "error", |     "@typescript-eslint/no-explicit-any": "error", | ||||||
|     "@typescript-eslint/no-extraneous-class": "error", |     "@typescript-eslint/no-extraneous-class": "error", | ||||||
|  |     "@typescript-eslint/no-floating-promises": "error", | ||||||
|     "@typescript-eslint/no-for-in-array": "error", |     "@typescript-eslint/no-for-in-array": "error", | ||||||
|     "@typescript-eslint/no-inferrable-types": "error", |     "@typescript-eslint/no-inferrable-types": "error", | ||||||
|     "@typescript-eslint/no-misused-new": "error", |     "@typescript-eslint/no-misused-new": "error", | ||||||
|     "@typescript-eslint/no-namespace": "error", |     "@typescript-eslint/no-namespace": "error", | ||||||
|     "@typescript-eslint/no-non-null-assertion": "warn", |     "@typescript-eslint/no-non-null-assertion": "warn", | ||||||
|     "@typescript-eslint/no-object-literal-type-assertion": "error", |  | ||||||
|     "@typescript-eslint/no-unnecessary-qualifier": "error", |     "@typescript-eslint/no-unnecessary-qualifier": "error", | ||||||
|     "@typescript-eslint/no-unnecessary-type-assertion": "error", |     "@typescript-eslint/no-unnecessary-type-assertion": "error", | ||||||
|     "@typescript-eslint/no-useless-constructor": "error", |     "@typescript-eslint/no-useless-constructor": "error", | ||||||
|  | @ -40,7 +36,6 @@ | ||||||
|     "@typescript-eslint/prefer-for-of": "warn", |     "@typescript-eslint/prefer-for-of": "warn", | ||||||
|     "@typescript-eslint/prefer-function-type": "warn", |     "@typescript-eslint/prefer-function-type": "warn", | ||||||
|     "@typescript-eslint/prefer-includes": "error", |     "@typescript-eslint/prefer-includes": "error", | ||||||
|     "@typescript-eslint/prefer-interface": "error", |  | ||||||
|     "@typescript-eslint/prefer-string-starts-ends-with": "error", |     "@typescript-eslint/prefer-string-starts-ends-with": "error", | ||||||
|     "@typescript-eslint/promise-function-async": "error", |     "@typescript-eslint/promise-function-async": "error", | ||||||
|     "@typescript-eslint/require-array-sort-compare": "error", |     "@typescript-eslint/require-array-sort-compare": "error", | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .licenses/** -diff linguist-generated=true | ||||||
							
								
								
									
										51
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | ||||||
|  | # `dist/index.js` is a special file in Actions. | ||||||
|  | # When you reference an action with `uses:` in a workflow, | ||||||
|  | # `index.js` is the code that will run. | ||||||
|  | # For our project, we generate this file through a build process | ||||||
|  | # from other source files. | ||||||
|  | # We need to make sure the checked-in `index.js` actually matches what we expect it to be. | ||||||
|  | name: Check dist | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  |     paths-ignore: | ||||||
|  |       - '**.md' | ||||||
|  |   pull_request: | ||||||
|  |     paths-ignore: | ||||||
|  |       - '**.md' | ||||||
|  |   workflow_dispatch: | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   check-dist: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  | 
 | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  | 
 | ||||||
|  |       - name: Set Node.js 16.x | ||||||
|  |         uses: actions/setup-node@v1 | ||||||
|  |         with: | ||||||
|  |           node-version: 16.x | ||||||
|  | 
 | ||||||
|  |       - name: Install dependencies | ||||||
|  |         run: npm ci | ||||||
|  | 
 | ||||||
|  |       - name: Rebuild the index.js file | ||||||
|  |         run: npm run build | ||||||
|  | 
 | ||||||
|  |       - name: Compare the expected and actual dist/ directories | ||||||
|  |         run: | | ||||||
|  |           if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then | ||||||
|  |             echo "Detected uncommitted changes after build.  See status below:" | ||||||
|  |             git diff | ||||||
|  |             exit 1 | ||||||
|  |           fi | ||||||
|  | 
 | ||||||
|  |       # If dist/ was different than expected, upload the expected version as an artifact | ||||||
|  |       - uses: actions/upload-artifact@v2 | ||||||
|  |         if: ${{ failure() && steps.diff.conclusion == 'failure' }} | ||||||
|  |         with: | ||||||
|  |           name: dist | ||||||
|  |           path: dist/ | ||||||
							
								
								
									
										58
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | ||||||
|  | # For most [](https://github.com/octokit/octokit.net/actions/workflows/netcore.yml), this workflow file will not need changing; you simply need | ||||||
|  | # to commit it to your repository. | ||||||
|  | # | ||||||
|  | # You may wish to alter this file to override the set of languages analyzed, | ||||||
|  | # or to provide custom queries or build logic. | ||||||
|  | # | ||||||
|  | # ******** NOTE ******** | ||||||
|  | # We have attempted to detect the languages in your repository. Please check | ||||||
|  | # the `language` matrix defined below to confirm you have the correct set of | ||||||
|  | # supported CodeQL languages. | ||||||
|  | # | ||||||
|  | name: "CodeQL" | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: [ main ] | ||||||
|  |   pull_request: | ||||||
|  |     # The branches below must be a subset of the branches above | ||||||
|  |     branches: [ main ] | ||||||
|  |   schedule: | ||||||
|  |     - cron: '28 9 * * 0' | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   analyze: | ||||||
|  |     name: Analyze | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     permissions: | ||||||
|  |       actions: read | ||||||
|  |       contents: read | ||||||
|  |       security-events: write | ||||||
|  | 
 | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         language: [ 'javascript' ] | ||||||
|  |         # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] | ||||||
|  |         # Learn more: | ||||||
|  |         # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed | ||||||
|  | 
 | ||||||
|  |     steps: | ||||||
|  |     - name: Checkout repository | ||||||
|  |       uses: actions/checkout@v3 | ||||||
|  | 
 | ||||||
|  |     - name: Initialize CodeQL | ||||||
|  |       uses: github/codeql-action/init@v1 | ||||||
|  |       with: | ||||||
|  |         languages: ${{ matrix.language }} | ||||||
|  |         # If you wish to specify custom queries, you can do so here or in a config file. | ||||||
|  |         # By default, queries listed here will override any specified in a config file. | ||||||
|  |         # Prefix the list here with "+" to use these queries and those in the config file. | ||||||
|  |         # queries: ./path/to/local/query, your-org/your-repo/queries@main | ||||||
|  | 
 | ||||||
|  |     - run: npm ci | ||||||
|  |     - run: npm run build | ||||||
|  |     - run: rm -rf dist # We want code scanning to analyze lib instead (individual .js files) | ||||||
|  | 
 | ||||||
|  |     - name: Perform CodeQL Analysis | ||||||
|  |       uses: github/codeql-action/analyze@v1 | ||||||
							
								
								
									
										14
									
								
								.github/workflows/licensed.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/licensed.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | name: Licensed | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: {branches: main} | ||||||
|  |   pull_request: {branches: main} | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     name: Check licenses | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |       - run: npm ci | ||||||
|  |       - run: npm run licensed-check | ||||||
							
								
								
									
										12
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							|  | @ -4,7 +4,7 @@ on: | ||||||
|   pull_request: |   pull_request: | ||||||
|   push: |   push: | ||||||
|     branches: |     branches: | ||||||
|       - master |       - main | ||||||
|       - releases/* |       - releases/* | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|  | @ -13,8 +13,8 @@ jobs: | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/setup-node@v1 |       - uses: actions/setup-node@v1 | ||||||
|         with: |         with: | ||||||
|           node-version: 12.x |           node-version: 16.x | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|       - run: npm ci |       - run: npm ci | ||||||
|       - run: npm run build |       - run: npm run build | ||||||
|       - run: npm run format-check |       - run: npm run format-check | ||||||
|  | @ -32,7 +32,7 @@ jobs: | ||||||
|     steps: |     steps: | ||||||
|       # Clone this repo |       # Clone this repo | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v2 |         uses: actions/checkout@v3 | ||||||
| 
 | 
 | ||||||
|       # Basic checkout |       # Basic checkout | ||||||
|       - name: Checkout basic |       - name: Checkout basic | ||||||
|  | @ -150,7 +150,7 @@ jobs: | ||||||
|     steps: |     steps: | ||||||
|       # Clone this repo |       # Clone this repo | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v2 |         uses: actions/checkout@v3 | ||||||
| 
 | 
 | ||||||
|       # Basic checkout using git |       # Basic checkout using git | ||||||
|       - name: Checkout basic |       - name: Checkout basic | ||||||
|  | @ -182,7 +182,7 @@ jobs: | ||||||
|     steps: |     steps: | ||||||
|       # Clone this repo |       # Clone this repo | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v2 |         uses: actions/checkout@v3 | ||||||
| 
 | 
 | ||||||
|       # Basic checkout using git |       # Basic checkout using git | ||||||
|       - name: Checkout basic |       - name: Checkout basic | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,4 @@ | ||||||
| __test__/_temp | __test__/_temp | ||||||
|  | _temp/ | ||||||
| lib/ | lib/ | ||||||
| node_modules/ | node_modules/ | ||||||
							
								
								
									
										14
									
								
								.licensed.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.licensed.yml
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | sources: | ||||||
|  |   npm: true | ||||||
|  | 
 | ||||||
|  | allowed: | ||||||
|  |   - apache-2.0 | ||||||
|  |   - bsd-2-clause | ||||||
|  |   - bsd-3-clause | ||||||
|  |   - isc | ||||||
|  |   - mit | ||||||
|  |   - cc0-1.0 | ||||||
|  |   - unlicense | ||||||
|  | 
 | ||||||
|  | reviewed: | ||||||
|  |   npm: | ||||||
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/exec.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/exec.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/github.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/github.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/io.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/io.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/tool-cache.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/tool-cache.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/auth-token.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/auth-token.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/endpoint.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/endpoint.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/graphql.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/graphql.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-paginate-rest.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-paginate-rest.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-request-log.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-request-log.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-rest-endpoint-methods.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/plugin-rest-endpoint-methods.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request-error-1.2.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request-error-1.2.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request-error-2.0.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request-error-2.0.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/request.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/rest.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/rest.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/types.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@octokit/types.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/atob-lite.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/atob-lite.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/before-after-hook.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/before-after-hook.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/btoa-lite.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/btoa-lite.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/call-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/call-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/cross-spawn.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/cross-spawn.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/deprecation.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/deprecation.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/end-of-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/end-of-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/execa.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/execa.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/get-intrinsic.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/get-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/get-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/has-symbols.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/has.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/has.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/is-plain-object.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/is-plain-object.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/is-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/is-stream.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/isexe.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/isexe.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/isobject.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/isobject.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lodash.get.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lodash.get.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lodash.set.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lodash.set.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lodash.uniq.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lodash.uniq.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/macos-release.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/macos-release.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/nice-try.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/nice-try.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/node-fetch.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/node-fetch.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/npm-run-path.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/npm-run-path.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/object-inspect.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/object-inspect.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/octokit-pagination-methods.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/octokit-pagination-methods.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/os-name.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/os-name.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/p-finally.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/p-finally.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/path-key.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/path-key.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/pump.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/pump.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/qs.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/qs.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/semver-5.7.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/semver-5.7.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/semver-6.3.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/semver-6.3.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/shebang-command.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/shebang-command.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/shebang-regex.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/shebang-regex.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/side-channel.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/side-channel.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/signal-exit.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/signal-exit.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/strip-eof.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/strip-eof.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/tr46.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/tr46.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/tunnel.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/tunnel.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/typed-rest-client.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/typed-rest-client.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/underscore.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/underscore.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/universal-user-agent-4.0.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/universal-user-agent-4.0.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/universal-user-agent-5.0.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/universal-user-agent-5.0.0.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/uuid.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/uuid.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/webidl-conversions.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/webidl-conversions.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/whatwg-url.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/whatwg-url.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/which.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/which.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/windows-release.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/windows-release.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								CODEOWNERS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								CODEOWNERS
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | * @actions/actions-runtime | ||||||
							
								
								
									
										66
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								README.md
									
									
									
									
									
								
							|  | @ -2,7 +2,7 @@ | ||||||
|   <a href="https://github.com/actions/checkout"><img alt="GitHub Actions status" src="https://github.com/actions/checkout/workflows/test-local/badge.svg"></a> |   <a href="https://github.com/actions/checkout"><img alt="GitHub Actions status" src="https://github.com/actions/checkout/workflows/test-local/badge.svg"></a> | ||||||
| </p> | </p> | ||||||
| 
 | 
 | ||||||
| # Checkout V2 | # Checkout V3 | ||||||
| 
 | 
 | ||||||
| This action checks-out your repository under `$GITHUB_WORKSPACE`, so your workflow can access it. | This action checks-out your repository under `$GITHUB_WORKSPACE`, so your workflow can access it. | ||||||
| 
 | 
 | ||||||
|  | @ -14,27 +14,14 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | ||||||
| 
 | 
 | ||||||
| # What's new | # What's new | ||||||
| 
 | 
 | ||||||
| - Improved performance | - Updated to the node16 runtime by default | ||||||
|   - Fetches only a single commit by default |   - This requires a minimum [Actions Runner](https://github.com/actions/runner/releases/tag/v2.285.0) version of v2.285.0 to run, which is by default available in GHES 3.4 or later. | ||||||
| - Script authenticated git commands |  | ||||||
|   - Auth token persisted in the local git config |  | ||||||
| - Supports SSH |  | ||||||
| - Creates a local branch |  | ||||||
|   - No longer detached HEAD when checking out a branch |  | ||||||
| - Improved layout |  | ||||||
|   - The input `path` is always relative to $GITHUB_WORKSPACE |  | ||||||
|   - Aligns better with container actions, where $GITHUB_WORKSPACE gets mapped in |  | ||||||
| - Fallback to REST API download |  | ||||||
|   - When Git 2.18 or higher is not in the PATH, the REST API will be used to download the files |  | ||||||
|   - When using a job container, the container's PATH is used |  | ||||||
| 
 |  | ||||||
| Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous versions. |  | ||||||
| 
 | 
 | ||||||
| # Usage | # Usage | ||||||
| 
 | 
 | ||||||
| <!-- start usage --> | <!-- start usage --> | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     # Repository name with owner. For example, actions/checkout |     # Repository name with owner. For example, actions/checkout | ||||||
|     # Default: ${{ github.repository }} |     # Default: ${{ github.repository }} | ||||||
|  | @ -118,11 +105,12 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| - [Checkout multiple repos (private)](#Checkout-multiple-repos-private) | - [Checkout multiple repos (private)](#Checkout-multiple-repos-private) | ||||||
| - [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit) | - [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit) | ||||||
| - [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event) | - [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event) | ||||||
|  | - [Push a commit using the built-in token](#Push-a-commit-using-the-built-in-token) | ||||||
| 
 | 
 | ||||||
| ## Fetch all history for all tags and branches | ## Fetch all history for all tags and branches | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     fetch-depth: 0 |     fetch-depth: 0 | ||||||
| ``` | ``` | ||||||
|  | @ -130,7 +118,7 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| ## Checkout a different branch | ## Checkout a different branch | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     ref: my-branch |     ref: my-branch | ||||||
| ``` | ``` | ||||||
|  | @ -138,7 +126,7 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| ## Checkout HEAD^ | ## Checkout HEAD^ | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     fetch-depth: 2 |     fetch-depth: 2 | ||||||
| - run: git checkout HEAD^ | - run: git checkout HEAD^ | ||||||
|  | @ -148,12 +136,12 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     path: main |     path: main | ||||||
| 
 | 
 | ||||||
| - name: Checkout tools repo | - name: Checkout tools repo | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-tools |     repository: my-org/my-tools | ||||||
|     path: my-tools |     path: my-tools | ||||||
|  | @ -163,10 +151,10 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
| 
 | 
 | ||||||
| - name: Checkout tools repo | - name: Checkout tools repo | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-tools |     repository: my-org/my-tools | ||||||
|     path: my-tools |     path: my-tools | ||||||
|  | @ -176,15 +164,15 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     path: main |     path: main | ||||||
| 
 | 
 | ||||||
| - name: Checkout private tools | - name: Checkout private tools | ||||||
|   uses: actions/checkout@v2 |   uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-private-tools |     repository: my-org/my-private-tools | ||||||
|     token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT |     token: ${{ secrets.GH_PAT }} # `GH_PAT` is a secret that contains your PAT | ||||||
|     path: my-tools |     path: my-tools | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | @ -194,7 +182,7 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| ## Checkout pull request HEAD commit instead of merge commit | ## Checkout pull request HEAD commit instead of merge commit | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v3 | ||||||
|   with: |   with: | ||||||
|     ref: ${{ github.event.pull_request.head.sha }} |     ref: ${{ github.event.pull_request.head.sha }} | ||||||
| ``` | ``` | ||||||
|  | @ -204,13 +192,31 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | ||||||
| ```yaml | ```yaml | ||||||
| on: | on: | ||||||
|   pull_request: |   pull_request: | ||||||
|     branches: [master] |     branches: [main] | ||||||
|     types: [opened, synchronize, closed] |     types: [opened, synchronize, closed] | ||||||
| jobs: | jobs: | ||||||
|   build: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Push a commit using the built-in token | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | on: push | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |       - run: | | ||||||
|  |           date > generated.txt | ||||||
|  |           git config user.name github-actions | ||||||
|  |           git config user.email github-actions@github.com | ||||||
|  |           git add . | ||||||
|  |           git commit -m "generated" | ||||||
|  |           git push | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| # License | # License | ||||||
|  |  | ||||||
|  | @ -417,7 +417,7 @@ describe('git-auth-helper tests', () => { | ||||||
|           `Did not expect file to exist: '${globalGitConfigPath}'` |           `Did not expect file to exist: '${globalGitConfigPath}'` | ||||||
|         ) |         ) | ||||||
|       } catch (err) { |       } catch (err) { | ||||||
|         if (err.code !== 'ENOENT') { |         if ((err as any)?.code !== 'ENOENT') { | ||||||
|           throw err |           throw err | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  | @ -518,12 +518,17 @@ describe('git-auth-helper tests', () => { | ||||||
|       await authHelper.configureSubmoduleAuth() |       await authHelper.configureSubmoduleAuth() | ||||||
| 
 | 
 | ||||||
|       // Assert
 |       // Assert
 | ||||||
|       expect(mockSubmoduleForeach).toHaveBeenCalledTimes(3) |       expect(mockSubmoduleForeach).toHaveBeenCalledTimes(4) | ||||||
|       expect(mockSubmoduleForeach.mock.calls[0][0]).toMatch( |       expect(mockSubmoduleForeach.mock.calls[0][0]).toMatch( | ||||||
|         /unset-all.*insteadOf/ |         /unset-all.*insteadOf/ | ||||||
|       ) |       ) | ||||||
|       expect(mockSubmoduleForeach.mock.calls[1][0]).toMatch(/http.*extraheader/) |       expect(mockSubmoduleForeach.mock.calls[1][0]).toMatch(/http.*extraheader/) | ||||||
|       expect(mockSubmoduleForeach.mock.calls[2][0]).toMatch(/url.*insteadOf/) |       expect(mockSubmoduleForeach.mock.calls[2][0]).toMatch( | ||||||
|  |         /url.*insteadOf.*git@github.com:/ | ||||||
|  |       ) | ||||||
|  |       expect(mockSubmoduleForeach.mock.calls[3][0]).toMatch( | ||||||
|  |         /url.*insteadOf.*org-123456@github.com:/ | ||||||
|  |       ) | ||||||
|     } |     } | ||||||
|   ) |   ) | ||||||
| 
 | 
 | ||||||
|  | @ -601,7 +606,7 @@ describe('git-auth-helper tests', () => { | ||||||
|       await fs.promises.stat(actualKeyPath) |       await fs.promises.stat(actualKeyPath) | ||||||
|       throw new Error('SSH key should have been deleted') |       throw new Error('SSH key should have been deleted') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       if (err.code !== 'ENOENT') { |       if ((err as any)?.code !== 'ENOENT') { | ||||||
|         throw err |         throw err | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | @ -611,7 +616,7 @@ describe('git-auth-helper tests', () => { | ||||||
|       await fs.promises.stat(actualKnownHostsPath) |       await fs.promises.stat(actualKnownHostsPath) | ||||||
|       throw new Error('SSH known hosts should have been deleted') |       throw new Error('SSH known hosts should have been deleted') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       if (err.code !== 'ENOENT') { |       if ((err as any)?.code !== 'ENOENT') { | ||||||
|         throw err |         throw err | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | @ -658,7 +663,7 @@ describe('git-auth-helper tests', () => { | ||||||
|       await fs.promises.stat(homeOverride) |       await fs.promises.stat(homeOverride) | ||||||
|       throw new Error(`Should have been deleted '${homeOverride}'`) |       throw new Error(`Should have been deleted '${homeOverride}'`) | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       if (err.code !== 'ENOENT') { |       if ((err as any)?.code !== 'ENOENT') { | ||||||
|         throw err |         throw err | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | @ -764,13 +769,14 @@ async function setup(testName: string): Promise<void> { | ||||||
|     submodules: false, |     submodules: false, | ||||||
|     nestedSubmodules: false, |     nestedSubmodules: false, | ||||||
|     persistCredentials: true, |     persistCredentials: true, | ||||||
|     ref: 'refs/heads/master', |     ref: 'refs/heads/main', | ||||||
|     repositoryName: 'my-repo', |     repositoryName: 'my-repo', | ||||||
|     repositoryOwner: 'my-org', |     repositoryOwner: 'my-org', | ||||||
|     repositoryPath: '', |     repositoryPath: '', | ||||||
|     sshKey: sshPath ? 'some ssh private key' : '', |     sshKey: sshPath ? 'some ssh private key' : '', | ||||||
|     sshKnownHosts: '', |     sshKnownHosts: '', | ||||||
|     sshStrict: true |     sshStrict: true, | ||||||
|  |     workflowOrganizationId: 123456 | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| import * as assert from 'assert' |  | ||||||
| import * as core from '@actions/core' | import * as core from '@actions/core' | ||||||
| import * as fsHelper from '../lib/fs-helper' | import * as fsHelper from '../lib/fs-helper' | ||||||
| import * as github from '@actions/github' | import * as github from '@actions/github' | ||||||
| import * as inputHelper from '../lib/input-helper' | import * as inputHelper from '../lib/input-helper' | ||||||
| import * as path from 'path' | import * as path from 'path' | ||||||
|  | import * as workflowContextHelper from '../lib/workflow-context-helper' | ||||||
| import {IGitSourceSettings} from '../lib/git-source-settings' | import {IGitSourceSettings} from '../lib/git-source-settings' | ||||||
| 
 | 
 | ||||||
| const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] | const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] | ||||||
|  | @ -43,6 +43,11 @@ describe('input-helper tests', () => { | ||||||
|       .spyOn(fsHelper, 'directoryExistsSync') |       .spyOn(fsHelper, 'directoryExistsSync') | ||||||
|       .mockImplementation((path: string) => path == gitHubWorkspace) |       .mockImplementation((path: string) => path == gitHubWorkspace) | ||||||
| 
 | 
 | ||||||
|  |     // Mock ./workflowContextHelper getOrganizationId()
 | ||||||
|  |     jest | ||||||
|  |       .spyOn(workflowContextHelper, 'getOrganizationId') | ||||||
|  |       .mockImplementation(() => Promise.resolve(123456)) | ||||||
|  | 
 | ||||||
|     // GitHub workspace
 |     // GitHub workspace
 | ||||||
|     process.env['GITHUB_WORKSPACE'] = gitHubWorkspace |     process.env['GITHUB_WORKSPACE'] = gitHubWorkspace | ||||||
|   }) |   }) | ||||||
|  | @ -67,8 +72,8 @@ describe('input-helper tests', () => { | ||||||
|     jest.restoreAllMocks() |     jest.restoreAllMocks() | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('sets defaults', () => { |   it('sets defaults', async () => { | ||||||
|     const settings: IGitSourceSettings = inputHelper.getInputs() |     const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|     expect(settings).toBeTruthy() |     expect(settings).toBeTruthy() | ||||||
|     expect(settings.authToken).toBeFalsy() |     expect(settings.authToken).toBeFalsy() | ||||||
|     expect(settings.clean).toBe(true) |     expect(settings.clean).toBe(true) | ||||||
|  | @ -82,11 +87,11 @@ describe('input-helper tests', () => { | ||||||
|     expect(settings.repositoryPath).toBe(gitHubWorkspace) |     expect(settings.repositoryPath).toBe(gitHubWorkspace) | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('qualifies ref', () => { |   it('qualifies ref', async () => { | ||||||
|     let originalRef = github.context.ref |     let originalRef = github.context.ref | ||||||
|     try { |     try { | ||||||
|       github.context.ref = 'some-unqualified-ref' |       github.context.ref = 'some-unqualified-ref' | ||||||
|       const settings: IGitSourceSettings = inputHelper.getInputs() |       const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|       expect(settings).toBeTruthy() |       expect(settings).toBeTruthy() | ||||||
|       expect(settings.commit).toBe('1234567890123456789012345678901234567890') |       expect(settings.commit).toBe('1234567890123456789012345678901234567890') | ||||||
|       expect(settings.ref).toBe('refs/heads/some-unqualified-ref') |       expect(settings.ref).toBe('refs/heads/some-unqualified-ref') | ||||||
|  | @ -95,32 +100,42 @@ describe('input-helper tests', () => { | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('requires qualified repo', () => { |   it('requires qualified repo', async () => { | ||||||
|     inputs.repository = 'some-unqualified-repo' |     inputs.repository = 'some-unqualified-repo' | ||||||
|     assert.throws(() => { |     try { | ||||||
|       inputHelper.getInputs() |       await inputHelper.getInputs() | ||||||
|     }, /Invalid repository 'some-unqualified-repo'/) |       throw 'should not reach here' | ||||||
|  |     } catch (err) { | ||||||
|  |       expect(`(${(err as any).message}`).toMatch( | ||||||
|  |         "Invalid repository 'some-unqualified-repo'" | ||||||
|  |       ) | ||||||
|  |     } | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('roots path', () => { |   it('roots path', async () => { | ||||||
|     inputs.path = 'some-directory/some-subdirectory' |     inputs.path = 'some-directory/some-subdirectory' | ||||||
|     const settings: IGitSourceSettings = inputHelper.getInputs() |     const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|     expect(settings.repositoryPath).toBe( |     expect(settings.repositoryPath).toBe( | ||||||
|       path.join(gitHubWorkspace, 'some-directory', 'some-subdirectory') |       path.join(gitHubWorkspace, 'some-directory', 'some-subdirectory') | ||||||
|     ) |     ) | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('sets ref to empty when explicit sha', () => { |   it('sets ref to empty when explicit sha', async () => { | ||||||
|     inputs.ref = '1111111111222222222233333333334444444444' |     inputs.ref = '1111111111222222222233333333334444444444' | ||||||
|     const settings: IGitSourceSettings = inputHelper.getInputs() |     const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|     expect(settings.ref).toBeFalsy() |     expect(settings.ref).toBeFalsy() | ||||||
|     expect(settings.commit).toBe('1111111111222222222233333333334444444444') |     expect(settings.commit).toBe('1111111111222222222233333333334444444444') | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   it('sets sha to empty when explicit ref', () => { |   it('sets sha to empty when explicit ref', async () => { | ||||||
|     inputs.ref = 'refs/heads/some-other-ref' |     inputs.ref = 'refs/heads/some-other-ref' | ||||||
|     const settings: IGitSourceSettings = inputHelper.getInputs() |     const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|     expect(settings.ref).toBe('refs/heads/some-other-ref') |     expect(settings.ref).toBe('refs/heads/some-other-ref') | ||||||
|     expect(settings.commit).toBeFalsy() |     expect(settings.commit).toBeFalsy() | ||||||
|   }) |   }) | ||||||
|  | 
 | ||||||
|  |   it('sets workflow organization ID', async () => { | ||||||
|  |     const settings: IGitSourceSettings = await inputHelper.getInputs() | ||||||
|  |     expect(settings.workflowOrganizationId).toBe(123456) | ||||||
|  |   }) | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | @ -2,5 +2,5 @@ | ||||||
| mkdir override-git-version | mkdir override-git-version | ||||||
| cd override-git-version | cd override-git-version | ||||||
| echo @echo override git version 1.2.3 > git.cmd | echo @echo override git version 1.2.3 > git.cmd | ||||||
| echo ::add-path::%CD% | echo "%CD%" >> $GITHUB_PATH | ||||||
| cd .. | cd .. | ||||||
|  |  | ||||||
|  | @ -5,5 +5,5 @@ cd override-git-version | ||||||
| echo "#!/bin/sh" > git | echo "#!/bin/sh" > git | ||||||
| echo "echo override git version 1.2.3" >> git | echo "echo override git version 1.2.3" >> git | ||||||
| chmod +x git | chmod +x git | ||||||
| echo "::add-path::$(pwd)" | echo "$(pwd)" >> $GITHUB_PATH | ||||||
| cd .. | cd .. | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ describe('ref-helper tests', () => { | ||||||
|       await refHelper.getCheckoutInfo(git, 'refs/heads/my/branch', commit) |       await refHelper.getCheckoutInfo(git, 'refs/heads/my/branch', commit) | ||||||
|       throw new Error('Should not reach here') |       throw new Error('Should not reach here') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       expect(err.message).toBe('Arg git cannot be empty') |       expect((err as any)?.message).toBe('Arg git cannot be empty') | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|  | @ -25,7 +25,9 @@ describe('ref-helper tests', () => { | ||||||
|       await refHelper.getCheckoutInfo(git, '', '') |       await refHelper.getCheckoutInfo(git, '', '') | ||||||
|       throw new Error('Should not reach here') |       throw new Error('Should not reach here') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       expect(err.message).toBe('Args ref and commit cannot both be empty') |       expect((err as any)?.message).toBe( | ||||||
|  |         'Args ref and commit cannot both be empty' | ||||||
|  |       ) | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|  | @ -102,7 +104,7 @@ describe('ref-helper tests', () => { | ||||||
|       await refHelper.getCheckoutInfo(git, 'my-ref', '') |       await refHelper.getCheckoutInfo(git, 'my-ref', '') | ||||||
|       throw new Error('Should not reach here') |       throw new Error('Should not reach here') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       expect(err.message).toBe( |       expect((err as any)?.message).toBe( | ||||||
|         "A branch or tag with the name 'my-ref' could not be found" |         "A branch or tag with the name 'my-ref' could not be found" | ||||||
|       ) |       ) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -74,7 +74,7 @@ describe('retry-helper tests', () => { | ||||||
|         throw new Error(`some error ${++attempts}`) |         throw new Error(`some error ${++attempts}`) | ||||||
|       }) |       }) | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       error = err |       error = err as Error | ||||||
|     } |     } | ||||||
|     expect(error.message).toBe('some error 3') |     expect(error.message).toBe('some error 3') | ||||||
|     expect(attempts).toBe(3) |     expect(attempts).toBe(3) | ||||||
|  |  | ||||||
|  | @ -20,5 +20,5 @@ else | ||||||
| 
 | 
 | ||||||
|   # Verify auth token |   # Verify auth token | ||||||
|   cd basic |   cd basic | ||||||
|   git fetch --no-tags --depth=1 origin +refs/heads/master:refs/remotes/origin/master |   git fetch --no-tags --depth=1 origin +refs/heads/main:refs/remotes/origin/main | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -69,6 +69,6 @@ inputs: | ||||||
|       converted to HTTPS. |       converted to HTTPS. | ||||||
|     default: false |     default: false | ||||||
| runs: | runs: | ||||||
|   using: node12 |   using: node16 | ||||||
|   main: dist/index.js |   main: dist/index.js | ||||||
|   post: dist/index.js |   post: dist/index.js | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ We want to take this opportunity to make behavioral changes, from v1. This docum | ||||||
|     description: > |     description: > | ||||||
|       The branch, tag or SHA to checkout. When checking out the repository that |       The branch, tag or SHA to checkout. When checking out the repository that | ||||||
|       triggered a workflow, this defaults to the reference or SHA for that |       triggered a workflow, this defaults to the reference or SHA for that | ||||||
|       event.  Otherwise, defaults to `master`. |       event.  Otherwise, uses the default branch. | ||||||
|   token: |   token: | ||||||
|     description: > |     description: > | ||||||
|       Personal access token (PAT) used to fetch the repository. The PAT is configured |       Personal access token (PAT) used to fetch the repository. The PAT is configured | ||||||
|  | @ -277,7 +277,7 @@ Note: | ||||||
| ### Branching strategy and release tags | ### Branching strategy and release tags | ||||||
| 
 | 
 | ||||||
| - Create a servicing branch for V1: `releases/v1` | - Create a servicing branch for V1: `releases/v1` | ||||||
| - Merge the changes into `master` | - Merge the changes into the default branch | ||||||
| - Release using a new tag `preview` | - Release using a new tag `preview` | ||||||
| - When stable, release using a new tag `v2` | - When stable, release using a new tag `v2` | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										5410
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5410
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										17254
									
								
								package-lock.JSON
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17254
									
								
								package-lock.JSON
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7135
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7135
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										24
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								package.json
									
									
									
									
									
								
							|  | @ -8,7 +8,9 @@ | ||||||
|     "format": "prettier --write '**/*.ts'", |     "format": "prettier --write '**/*.ts'", | ||||||
|     "format-check": "prettier --check '**/*.ts'", |     "format-check": "prettier --check '**/*.ts'", | ||||||
|     "lint": "eslint src/**/*.ts", |     "lint": "eslint src/**/*.ts", | ||||||
|     "test": "jest" |     "test": "jest", | ||||||
|  |     "licensed-check": "src/misc/licensed-check.sh", | ||||||
|  |     "licensed-generate": "src/misc/licensed-generate.sh" | ||||||
|   }, |   }, | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|  | @ -26,7 +28,7 @@ | ||||||
|   }, |   }, | ||||||
|   "homepage": "https://github.com/actions/checkout#readme", |   "homepage": "https://github.com/actions/checkout#readme", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/core": "^1.1.3", |     "@actions/core": "^1.2.6", | ||||||
|     "@actions/exec": "^1.0.1", |     "@actions/exec": "^1.0.1", | ||||||
|     "@actions/github": "^2.2.0", |     "@actions/github": "^2.2.0", | ||||||
|     "@actions/io": "^1.0.1", |     "@actions/io": "^1.0.1", | ||||||
|  | @ -34,19 +36,19 @@ | ||||||
|     "uuid": "^3.3.3" |     "uuid": "^3.3.3" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/jest": "^24.0.23", |     "@types/jest": "^27.0.2", | ||||||
|     "@types/node": "^12.7.12", |     "@types/node": "^12.7.12", | ||||||
|     "@types/uuid": "^3.4.6", |     "@types/uuid": "^3.4.6", | ||||||
|     "@typescript-eslint/parser": "^2.8.0", |     "@typescript-eslint/parser": "^5.1.0", | ||||||
|     "@zeit/ncc": "^0.20.5", |     "@zeit/ncc": "^0.20.5", | ||||||
|     "eslint": "^5.16.0", |     "eslint": "^7.32.0", | ||||||
|     "eslint-plugin-github": "^2.0.0", |     "eslint-plugin-github": "^4.3.2", | ||||||
|     "eslint-plugin-jest": "^22.21.0", |     "eslint-plugin-jest": "^25.2.2", | ||||||
|     "jest": "^24.9.0", |     "jest": "^27.3.0", | ||||||
|     "jest-circus": "^24.9.0", |     "jest-circus": "^27.3.0", | ||||||
|     "js-yaml": "^3.13.1", |     "js-yaml": "^3.13.1", | ||||||
|     "prettier": "^1.19.1", |     "prettier": "^1.19.1", | ||||||
|     "ts-jest": "^24.2.0", |     "ts-jest": "^27.0.7", | ||||||
|     "typescript": "^3.6.4" |     "typescript": "^4.4.4" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ export function directoryExistsSync(path: string, required?: boolean): boolean { | ||||||
|   try { |   try { | ||||||
|     stats = fs.statSync(path) |     stats = fs.statSync(path) | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     if (error.code === 'ENOENT') { |     if ((error as any)?.code === 'ENOENT') { | ||||||
|       if (!required) { |       if (!required) { | ||||||
|         return false |         return false | ||||||
|       } |       } | ||||||
|  | @ -18,7 +18,8 @@ export function directoryExistsSync(path: string, required?: boolean): boolean { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     throw new Error( |     throw new Error( | ||||||
|       `Encountered an error when checking whether path '${path}' exists: ${error.message}` |       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||||
|  |         ?.message ?? error}` | ||||||
|     ) |     ) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -39,12 +40,13 @@ export function existsSync(path: string): boolean { | ||||||
|   try { |   try { | ||||||
|     fs.statSync(path) |     fs.statSync(path) | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     if (error.code === 'ENOENT') { |     if ((error as any)?.code === 'ENOENT') { | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     throw new Error( |     throw new Error( | ||||||
|       `Encountered an error when checking whether path '${path}' exists: ${error.message}` |       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||||
|  |         ?.message ?? error}` | ||||||
|     ) |     ) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -60,12 +62,13 @@ export function fileExistsSync(path: string): boolean { | ||||||
|   try { |   try { | ||||||
|     stats = fs.statSync(path) |     stats = fs.statSync(path) | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     if (error.code === 'ENOENT') { |     if ((error as any)?.code === 'ENOENT') { | ||||||
|       return false |       return false | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     throw new Error( |     throw new Error( | ||||||
|       `Encountered an error when checking whether path '${path}' exists: ${error.message}` |       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||||
|  |         ?.message ?? error}` | ||||||
|     ) |     ) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ class GitAuthHelper { | ||||||
|   private readonly tokenConfigValue: string |   private readonly tokenConfigValue: string | ||||||
|   private readonly tokenPlaceholderConfigValue: string |   private readonly tokenPlaceholderConfigValue: string | ||||||
|   private readonly insteadOfKey: string |   private readonly insteadOfKey: string | ||||||
|   private readonly insteadOfValue: string |   private readonly insteadOfValues: string[] = [] | ||||||
|   private sshCommand = '' |   private sshCommand = '' | ||||||
|   private sshKeyPath = '' |   private sshKeyPath = '' | ||||||
|   private sshKnownHostsPath = '' |   private sshKnownHostsPath = '' | ||||||
|  | @ -45,7 +45,7 @@ class GitAuthHelper { | ||||||
| 
 | 
 | ||||||
|   constructor( |   constructor( | ||||||
|     gitCommandManager: IGitCommandManager, |     gitCommandManager: IGitCommandManager, | ||||||
|     gitSourceSettings?: IGitSourceSettings |     gitSourceSettings: IGitSourceSettings | undefined | ||||||
|   ) { |   ) { | ||||||
|     this.git = gitCommandManager |     this.git = gitCommandManager | ||||||
|     this.settings = gitSourceSettings || (({} as unknown) as IGitSourceSettings) |     this.settings = gitSourceSettings || (({} as unknown) as IGitSourceSettings) | ||||||
|  | @ -63,7 +63,12 @@ class GitAuthHelper { | ||||||
| 
 | 
 | ||||||
|     // Instead of SSH URL
 |     // Instead of SSH URL
 | ||||||
|     this.insteadOfKey = `url.${serverUrl.origin}/.insteadOf` // "origin" is SCHEME://HOSTNAME[:PORT]
 |     this.insteadOfKey = `url.${serverUrl.origin}/.insteadOf` // "origin" is SCHEME://HOSTNAME[:PORT]
 | ||||||
|     this.insteadOfValue = `git@${serverUrl.hostname}:` |     this.insteadOfValues.push(`git@${serverUrl.hostname}:`) | ||||||
|  |     if (this.settings.workflowOrganizationId) { | ||||||
|  |       this.insteadOfValues.push( | ||||||
|  |         `org-${this.settings.workflowOrganizationId}@github.com:` | ||||||
|  |       ) | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async configureAuth(): Promise<void> { |   async configureAuth(): Promise<void> { | ||||||
|  | @ -94,7 +99,7 @@ class GitAuthHelper { | ||||||
|       await fs.promises.stat(gitConfigPath) |       await fs.promises.stat(gitConfigPath) | ||||||
|       configExists = true |       configExists = true | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       if (err.code !== 'ENOENT') { |       if ((err as any)?.code !== 'ENOENT') { | ||||||
|         throw err |         throw err | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | @ -118,7 +123,9 @@ class GitAuthHelper { | ||||||
|       // Configure HTTPS instead of SSH
 |       // Configure HTTPS instead of SSH
 | ||||||
|       await this.git.tryConfigUnset(this.insteadOfKey, true) |       await this.git.tryConfigUnset(this.insteadOfKey, true) | ||||||
|       if (!this.settings.sshKey) { |       if (!this.settings.sshKey) { | ||||||
|         await this.git.config(this.insteadOfKey, this.insteadOfValue, true) |         for (const insteadOfValue of this.insteadOfValues) { | ||||||
|  |           await this.git.config(this.insteadOfKey, insteadOfValue, true, true) | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       // Unset in case somehow written to the real global config
 |       // Unset in case somehow written to the real global config
 | ||||||
|  | @ -148,7 +155,7 @@ class GitAuthHelper { | ||||||
|         output.match(/(?<=(^|\n)file:)[^\t]+(?=\tremote\.origin\.url)/g) || [] |         output.match(/(?<=(^|\n)file:)[^\t]+(?=\tremote\.origin\.url)/g) || [] | ||||||
|       for (const configPath of configPaths) { |       for (const configPath of configPaths) { | ||||||
|         core.debug(`Replacing token placeholder in '${configPath}'`) |         core.debug(`Replacing token placeholder in '${configPath}'`) | ||||||
|         this.replaceTokenPlaceholder(configPath) |         await this.replaceTokenPlaceholder(configPath) | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       if (this.settings.sshKey) { |       if (this.settings.sshKey) { | ||||||
|  | @ -159,10 +166,12 @@ class GitAuthHelper { | ||||||
|         ) |         ) | ||||||
|       } else { |       } else { | ||||||
|         // Configure HTTPS instead of SSH
 |         // Configure HTTPS instead of SSH
 | ||||||
|         await this.git.submoduleForeach( |         for (const insteadOfValue of this.insteadOfValues) { | ||||||
|           `git config --local '${this.insteadOfKey}' '${this.insteadOfValue}'`, |           await this.git.submoduleForeach( | ||||||
|           this.settings.nestedSubmodules |             `git config --local --add '${this.insteadOfKey}' '${insteadOfValue}'`, | ||||||
|         ) |             this.settings.nestedSubmodules | ||||||
|  |           ) | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | @ -213,7 +222,7 @@ class GitAuthHelper { | ||||||
|         await fs.promises.readFile(userKnownHostsPath) |         await fs.promises.readFile(userKnownHostsPath) | ||||||
|       ).toString() |       ).toString() | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       if (err.code !== 'ENOENT') { |       if ((err as any)?.code !== 'ENOENT') { | ||||||
|         throw err |         throw err | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | @ -302,7 +311,7 @@ class GitAuthHelper { | ||||||
|       try { |       try { | ||||||
|         await io.rmRF(keyPath) |         await io.rmRF(keyPath) | ||||||
|       } catch (err) { |       } catch (err) { | ||||||
|         core.debug(err.message) |         core.debug(`${(err as any)?.message ?? err}`) | ||||||
|         core.warning(`Failed to remove SSH key '${keyPath}'`) |         core.warning(`Failed to remove SSH key '${keyPath}'`) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -21,7 +21,8 @@ export interface IGitCommandManager { | ||||||
|   config( |   config( | ||||||
|     configKey: string, |     configKey: string, | ||||||
|     configValue: string, |     configValue: string, | ||||||
|     globalConfig?: boolean |     globalConfig?: boolean, | ||||||
|  |     add?: boolean | ||||||
|   ): Promise<void> |   ): Promise<void> | ||||||
|   configExists(configKey: string, globalConfig?: boolean): Promise<boolean> |   configExists(configKey: string, globalConfig?: boolean): Promise<boolean> | ||||||
|   fetch(refSpec: string[], fetchDepth?: number): Promise<void> |   fetch(refSpec: string[], fetchDepth?: number): Promise<void> | ||||||
|  | @ -31,7 +32,7 @@ export interface IGitCommandManager { | ||||||
|   isDetached(): Promise<boolean> |   isDetached(): Promise<boolean> | ||||||
|   lfsFetch(ref: string): Promise<void> |   lfsFetch(ref: string): Promise<void> | ||||||
|   lfsInstall(): Promise<void> |   lfsInstall(): Promise<void> | ||||||
|   log1(): Promise<string> |   log1(format?: string): Promise<string> | ||||||
|   remoteAdd(remoteName: string, remoteUrl: string): Promise<void> |   remoteAdd(remoteName: string, remoteUrl: string): Promise<void> | ||||||
|   removeEnvironmentVariable(name: string): void |   removeEnvironmentVariable(name: string): void | ||||||
|   revParse(ref: string): Promise<string> |   revParse(ref: string): Promise<string> | ||||||
|  | @ -140,14 +141,15 @@ class GitCommandManager { | ||||||
|   async config( |   async config( | ||||||
|     configKey: string, |     configKey: string, | ||||||
|     configValue: string, |     configValue: string, | ||||||
|     globalConfig?: boolean |     globalConfig?: boolean, | ||||||
|  |     add?: boolean | ||||||
|   ): Promise<void> { |   ): Promise<void> { | ||||||
|     await this.execGit([ |     const args: string[] = ['config', globalConfig ? '--global' : '--local'] | ||||||
|       'config', |     if (add) { | ||||||
|       globalConfig ? '--global' : '--local', |       args.push('--add') | ||||||
|       configKey, |     } | ||||||
|       configValue |     args.push(...[configKey, configValue]) | ||||||
|     ]) |     await this.execGit(args) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async configExists( |   async configExists( | ||||||
|  | @ -254,8 +256,10 @@ class GitCommandManager { | ||||||
|     await this.execGit(['lfs', 'install', '--local']) |     await this.execGit(['lfs', 'install', '--local']) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async log1(): Promise<string> { |   async log1(format?: string): Promise<string> { | ||||||
|     const output = await this.execGit(['log', '-1']) |     var args = format ? ['log', '-1', format] : ['log', '-1'] | ||||||
|  |     var silent = format ? false : true | ||||||
|  |     const output = await this.execGit(args, false, silent) | ||||||
|     return output.stdout |     return output.stdout | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -270,7 +274,7 @@ class GitCommandManager { | ||||||
|   /** |   /** | ||||||
|    * Resolves a ref to a SHA. For a branch or lightweight tag, the commit SHA is returned. |    * Resolves a ref to a SHA. For a branch or lightweight tag, the commit SHA is returned. | ||||||
|    * For an annotated tag, the tag SHA is returned. |    * For an annotated tag, the tag SHA is returned. | ||||||
|    * @param {string} ref  For example: 'refs/heads/master' or '/refs/tags/v1' |    * @param {string} ref  For example: 'refs/heads/main' or '/refs/tags/v1' | ||||||
|    * @returns {Promise<string>} |    * @returns {Promise<string>} | ||||||
|    */ |    */ | ||||||
|   async revParse(ref: string): Promise<string> { |   async revParse(ref: string): Promise<string> { | ||||||
|  | @ -390,7 +394,8 @@ class GitCommandManager { | ||||||
| 
 | 
 | ||||||
|   private async execGit( |   private async execGit( | ||||||
|     args: string[], |     args: string[], | ||||||
|     allowAllExitCodes = false |     allowAllExitCodes = false, | ||||||
|  |     silent = false | ||||||
|   ): Promise<GitOutput> { |   ): Promise<GitOutput> { | ||||||
|     fshelper.directoryExistsSync(this.workingDirectory, true) |     fshelper.directoryExistsSync(this.workingDirectory, true) | ||||||
| 
 | 
 | ||||||
|  | @ -409,6 +414,7 @@ class GitCommandManager { | ||||||
|     const options = { |     const options = { | ||||||
|       cwd: this.workingDirectory, |       cwd: this.workingDirectory, | ||||||
|       env, |       env, | ||||||
|  |       silent, | ||||||
|       ignoreReturnCode: allowAllExitCodes, |       ignoreReturnCode: allowAllExitCodes, | ||||||
|       listeners: { |       listeners: { | ||||||
|         stdout: (data: Buffer) => { |         stdout: (data: Buffer) => { | ||||||
|  |  | ||||||
|  | @ -39,7 +39,9 @@ export async function prepareExistingDirectory( | ||||||
|       try { |       try { | ||||||
|         await io.rmRF(lockPath) |         await io.rmRF(lockPath) | ||||||
|       } catch (error) { |       } catch (error) { | ||||||
|         core.debug(`Unable to delete '${lockPath}'. ${error.message}`) |         core.debug( | ||||||
|  |           `Unable to delete '${lockPath}'. ${(error as any)?.message ?? error}` | ||||||
|  |         ) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -201,9 +201,12 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Dump some info about the checked out commit
 |     // Get commit information
 | ||||||
|     const commitInfo = await git.log1() |     const commitInfo = await git.log1() | ||||||
| 
 | 
 | ||||||
|  |     // Log commit sha
 | ||||||
|  |     await git.log1("--format='%H'") | ||||||
|  | 
 | ||||||
|     // Check for incorrect pull request merge commit
 |     // Check for incorrect pull request merge commit
 | ||||||
|     await refHelper.checkCommitInfo( |     await refHelper.checkCommitInfo( | ||||||
|       settings.authToken, |       settings.authToken, | ||||||
|  |  | ||||||
|  | @ -73,4 +73,9 @@ export interface IGitSourceSettings { | ||||||
|    * Indicates whether to persist the credentials on disk to enable scripting authenticated git commands |    * Indicates whether to persist the credentials on disk to enable scripting authenticated git commands | ||||||
|    */ |    */ | ||||||
|   persistCredentials: boolean |   persistCredentials: boolean | ||||||
|  | 
 | ||||||
|  |   /** | ||||||
|  |    * Organization ID for the currently running workflow (used for auth settings) | ||||||
|  |    */ | ||||||
|  |   workflowOrganizationId: number | undefined | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -47,7 +47,7 @@ export async function downloadRepository( | ||||||
|   } else { |   } else { | ||||||
|     await toolCache.extractTar(archivePath, extractPath) |     await toolCache.extractTar(archivePath, extractPath) | ||||||
|   } |   } | ||||||
|   io.rmRF(archivePath) |   await io.rmRF(archivePath) | ||||||
| 
 | 
 | ||||||
|   // Determine the path of the repository content. The archive contains
 |   // Determine the path of the repository content. The archive contains
 | ||||||
|   // a top-level folder and the repository content is inside.
 |   // a top-level folder and the repository content is inside.
 | ||||||
|  | @ -70,7 +70,7 @@ export async function downloadRepository( | ||||||
|       await io.mv(sourcePath, targetPath) |       await io.mv(sourcePath, targetPath) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   io.rmRF(extractPath) |   await io.rmRF(extractPath) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -92,7 +92,10 @@ export async function getDefaultBranch( | ||||||
|       assert.ok(result, 'default_branch cannot be empty') |       assert.ok(result, 'default_branch cannot be empty') | ||||||
|     } catch (err) { |     } catch (err) { | ||||||
|       // Handle .wiki repo
 |       // Handle .wiki repo
 | ||||||
|       if (err['status'] === 404 && repo.toUpperCase().endsWith('.WIKI')) { |       if ( | ||||||
|  |         (err as any)?.status === 404 && | ||||||
|  |         repo.toUpperCase().endsWith('.WIKI') | ||||||
|  |       ) { | ||||||
|         result = 'master' |         result = 'master' | ||||||
|       } |       } | ||||||
|       // Otherwise error
 |       // Otherwise error
 | ||||||
|  |  | ||||||
|  | @ -2,9 +2,10 @@ import * as core from '@actions/core' | ||||||
| import * as fsHelper from './fs-helper' | import * as fsHelper from './fs-helper' | ||||||
| import * as github from '@actions/github' | import * as github from '@actions/github' | ||||||
| import * as path from 'path' | import * as path from 'path' | ||||||
|  | import * as workflowContextHelper from './workflow-context-helper' | ||||||
| import {IGitSourceSettings} from './git-source-settings' | import {IGitSourceSettings} from './git-source-settings' | ||||||
| 
 | 
 | ||||||
| export function getInputs(): IGitSourceSettings { | export async function getInputs(): Promise<IGitSourceSettings> { | ||||||
|   const result = ({} as unknown) as IGitSourceSettings |   const result = ({} as unknown) as IGitSourceSettings | ||||||
| 
 | 
 | ||||||
|   // GitHub workspace
 |   // GitHub workspace
 | ||||||
|  | @ -63,7 +64,7 @@ export function getInputs(): IGitSourceSettings { | ||||||
|       result.commit = github.context.sha |       result.commit = github.context.sha | ||||||
| 
 | 
 | ||||||
|       // Some events have an unqualifed ref. For example when a PR is merged (pull_request closed event),
 |       // Some events have an unqualifed ref. For example when a PR is merged (pull_request closed event),
 | ||||||
|       // the ref is unqualifed like "master" instead of "refs/heads/master".
 |       // the ref is unqualifed like "main" instead of "refs/heads/main".
 | ||||||
|       if (result.commit && result.ref && !result.ref.startsWith('refs/')) { |       if (result.commit && result.ref && !result.ref.startsWith('refs/')) { | ||||||
|         result.ref = `refs/heads/${result.ref}` |         result.ref = `refs/heads/${result.ref}` | ||||||
|       } |       } | ||||||
|  | @ -118,5 +119,8 @@ export function getInputs(): IGitSourceSettings { | ||||||
|   result.persistCredentials = |   result.persistCredentials = | ||||||
|     (core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE' |     (core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE' | ||||||
| 
 | 
 | ||||||
|  |   // Workflow organization ID
 | ||||||
|  |   result.workflowOrganizationId = await workflowContextHelper.getOrganizationId() | ||||||
|  | 
 | ||||||
|   return result |   return result | ||||||
| } | } | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Emnmer1
						Emnmer1