mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 10:08:37 +08:00 
			
		
		
		
	chore: upgrade Prettier to v2 and run on full repo
This commit is contained in:
		
							parent
							
								
									1f9a0c22da
								
							
						
					
					
						commit
						2f7f8896e5
					
				
							
								
								
									
										12
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| # EditorConfig is awesome: https://EditorConfig.org | ||||
| 
 | ||||
| # top-most EditorConfig file | ||||
| root = true | ||||
| 
 | ||||
| [*] | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
| end_of_line = lf | ||||
| charset = utf-8 | ||||
| trim_trailing_whitespace = true | ||||
| insert_final_newline = true | ||||
|  | @ -12,12 +12,18 @@ | |||
|     "import/no-namespace": "off", | ||||
|     "no-unused-vars": "off", | ||||
|     "@typescript-eslint/no-unused-vars": "error", | ||||
|     "@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}], | ||||
|     "@typescript-eslint/explicit-member-accessibility": [ | ||||
|       "error", | ||||
|       {"accessibility": "no-public"} | ||||
|     ], | ||||
|     "@typescript-eslint/no-require-imports": "error", | ||||
|     "@typescript-eslint/array-type": "error", | ||||
|     "@typescript-eslint/await-thenable": "error", | ||||
|     "camelcase": "off", | ||||
|     "@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/no-array-constructor": "error", | ||||
|     "@typescript-eslint/no-empty-interface": "error", | ||||
|  |  | |||
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							|  | @ -1 +1,2 @@ | |||
| * text=auto eol=lf | ||||
| .licenses/** -diff linguist-generated=true | ||||
							
								
								
									
										2
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
								
							|  | @ -9,7 +9,7 @@ | |||
| # the `language` matrix defined below to confirm you have the correct set of | ||||
| # supported CodeQL languages. | ||||
| # | ||||
| name: "CodeQL" | ||||
| name: 'CodeQL' | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| dist/ | ||||
| lib/ | ||||
| node_modules/ | ||||
| .licenses/ | ||||
|  |  | |||
|  | @ -6,6 +6,5 @@ | |||
|   "singleQuote": true, | ||||
|   "trailingComma": "none", | ||||
|   "bracketSpacing": false, | ||||
|   "arrowParens": "avoid", | ||||
|   "parser": "typescript" | ||||
|   "arrowParens": "avoid" | ||||
| } | ||||
|  | @ -1,13 +1,16 @@ | |||
| # Changelog | ||||
| 
 | ||||
| ## v3.1.0 | ||||
| 
 | ||||
| - [Use @actions/core `saveState` and `getState`](https://github.com/actions/checkout/pull/939) | ||||
| - [Add `github-server-url` input](https://github.com/actions/checkout/pull/922) | ||||
| 
 | ||||
| ## v3.0.2 | ||||
| 
 | ||||
| - [Add input `set-safe-directory`](https://github.com/actions/checkout/pull/770) | ||||
| 
 | ||||
| ## v3.0.1 | ||||
| 
 | ||||
| - [Fixed an issue where checkout failed to run in container jobs due to the new git setting `safe.directory`](https://github.com/actions/checkout/pull/762) | ||||
| - [Bumped various npm package versions](https://github.com/actions/checkout/pull/744) | ||||
| 
 | ||||
|  | @ -66,7 +69,6 @@ | |||
|   - Aligns better with container actions, where `github.workspace` gets mapped in | ||||
| - Removed input `submodules` | ||||
| 
 | ||||
| 
 | ||||
| ## v1 | ||||
| 
 | ||||
| Refer [here](https://github.com/actions/checkout/blob/v1/CHANGELOG.md) for the V1 changelog | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||
| # Usage | ||||
| 
 | ||||
| <!-- start usage --> | ||||
| 
 | ||||
| ```yaml | ||||
| - uses: actions/checkout@v3 | ||||
|   with: | ||||
|  | @ -102,6 +103,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||
|     # https://my-ghes-server.example.com | ||||
|     github-server-url: '' | ||||
| ``` | ||||
| 
 | ||||
| <!-- end usage --> | ||||
| 
 | ||||
| # Scenarios | ||||
|  | @ -187,7 +189,6 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||
| 
 | ||||
| > - `${{ github.token }}` is scoped to the current repository, so if you want to checkout a different repository that is private you will need to provide your own [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). | ||||
| 
 | ||||
| 
 | ||||
| ## Checkout pull request HEAD commit instead of merge commit | ||||
| 
 | ||||
| ```yaml | ||||
|  |  | |||
|  | @ -169,8 +169,9 @@ describe('git-auth-helper tests', () => { | |||
| 
 | ||||
|     // Mock fs.promises.readFile
 | ||||
|     const realReadFile = fs.promises.readFile | ||||
|     jest.spyOn(fs.promises, 'readFile').mockImplementation( | ||||
|       async (file: any, options: any): Promise<Buffer> => { | ||||
|     jest | ||||
|       .spyOn(fs.promises, 'readFile') | ||||
|       .mockImplementation(async (file: any, options: any): Promise<Buffer> => { | ||||
|         const userKnownHostsPath = path.join( | ||||
|           os.homedir(), | ||||
|           '.ssh', | ||||
|  | @ -181,8 +182,7 @@ describe('git-auth-helper tests', () => { | |||
|         } | ||||
| 
 | ||||
|         return await realReadFile(file, options) | ||||
|       } | ||||
|     ) | ||||
|       }) | ||||
| 
 | ||||
|     // Act
 | ||||
|     const authHelper = gitAuthHelper.createAuthHelper(git, settings) | ||||
|  |  | |||
|  | @ -7,11 +7,11 @@ let git: IGitCommandManager | |||
| 
 | ||||
| describe('ref-helper tests', () => { | ||||
|   beforeEach(() => { | ||||
|     git = ({} as unknown) as IGitCommandManager | ||||
|     git = {} as unknown as IGitCommandManager | ||||
|   }) | ||||
| 
 | ||||
|   it('getCheckoutInfo requires git', async () => { | ||||
|     const git = (null as unknown) as IGitCommandManager | ||||
|     const git = null as unknown as IGitCommandManager | ||||
|     try { | ||||
|       await refHelper.getCheckoutInfo(git, 'refs/heads/my/branch', commit) | ||||
|       throw new Error('Should not reach here') | ||||
|  |  | |||
|  | @ -68,7 +68,7 @@ describe('retry-helper tests', () => { | |||
| 
 | ||||
|   it('all attempts fail succeeds', async () => { | ||||
|     let attempts = 0 | ||||
|     let error: Error = (null as unknown) as Error | ||||
|     let error: Error = null as unknown as Error | ||||
|     try { | ||||
|       await retryHelper.execute(() => { | ||||
|         throw new Error(`some error ${++attempts}`) | ||||
|  |  | |||
|  | @ -87,6 +87,7 @@ We want to take this opportunity to make behavioral changes, from v1. This docum | |||
| ``` | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - SSH support is new | ||||
| - `persist-credentials` is new | ||||
| - `path` behavior is different (refer [below](#path) for details) | ||||
|  | @ -96,6 +97,7 @@ Note: | |||
| When a sufficient version of git is not in the PATH, fallback to the [web API](https://developer.github.com/v3/repos/contents/#get-archive-link) to download a tarball/zipball. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - LFS files are not included in the archive. Therefore fail if LFS is set to true. | ||||
| - Submodules are also not included in the archive. | ||||
| 
 | ||||
|  | @ -108,6 +110,7 @@ A post script will remove the credentials (cleanup for self-hosted). | |||
| Users may opt-out by specifying `persist-credentials: false` | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - Users scripting `git commit` may need to set the username and email. The service does not provide any reasonable default value. Users can add `git config user.name <NAME>` and `git config user.email <EMAIL>`. We will document this guidance. | ||||
| 
 | ||||
| #### PAT | ||||
|  | @ -115,6 +118,7 @@ Note: | |||
| When using the `${{github.token}}` or a PAT, the token will be persisted in the local git config. The config key `http.https://github.com/.extraheader` enables an auth header to be specified on all authenticated commands `AUTHORIZATION: basic <BASE64_U:P>`. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - The auth header is scoped to all of github `http.https://github.com/.extraheader` | ||||
|   - Additional public remotes also just work. | ||||
|   - If users want to authenticate to an additional private remote, they should provide the `token` input. | ||||
|  | @ -140,6 +144,7 @@ git config core.sshCommand 'ssh -i "$RUNNER_TEMP/path-to-ssh-key" -o StrictHostK | |||
| When the input `ssh-strict` is set to `false`, the options `CheckHostIP` and `StrictHostKeyChecking` will not be overridden. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - When `ssh-strict` is set to `true` (default), the SSH option `CheckHostIP` can safely be disabled. | ||||
|   Strict host checking verifies the server's public key. Therefore, IP verification is unnecessary | ||||
|   and noisy. For example: | ||||
|  | @ -158,6 +163,7 @@ If a SHA isn't available (e.g. multi repo), then fetch only the specified ref wi | |||
| The input `fetch-depth` can be used to control the depth. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - Fetching a single commit is supported by Git wire protocol version 2. The git client uses protocol version 0 by default. The desired protocol version can be overridden in the git config or on the fetch command line invocation (`-c protocol.version=2`). We will override on the fetch command line, for transparency. | ||||
| - Git client version 2.18+ (released June 2018) is required for wire protocol version 2. | ||||
| 
 | ||||
|  | @ -168,6 +174,7 @@ For CI, checkout will create a local ref with the upstream set. This allows user | |||
| For PR, continue to checkout detached head. The PR branch is special - the branch and merge commit are created by the server. It doesn't match a users' local workflow. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - Consider deleting all local refs during cleanup if that helps avoid collisions. More testing required. | ||||
| 
 | ||||
| ### Path | ||||
|  | @ -192,6 +199,7 @@ These behavioral changes align better with container actions. The [documented fi | |||
| - `/github/workflow` | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - The tracking config will not be updated to reflect the path of the workflow repo. | ||||
| - Any existing workflow repo will not be moved when the checkout path changes. In fact some customers want to checkout the workflow repo twice, side by side against different branches. | ||||
| - Actions that need to operate only against the root of the self repo, should expose a `path` input. | ||||
|  | @ -205,6 +213,7 @@ This default fits the mainline scenario well: single checkout | |||
| For multi-checkout, users must specify the `path` input for at least one of the repositories. | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - An alternative is for the self repo to default to `./` and other repos default to `<REPO_NAME>`. However nested layout is an atypical git layout and therefore is not a good default. Users should supply the path info. | ||||
| 
 | ||||
| #### Example - Nested layout | ||||
|  | @ -265,6 +274,7 @@ Credentials will be persisted in the submodules local git config too. | |||
| ### Port to typescript | ||||
| 
 | ||||
| The checkout action should be a typescript action on the GitHub graph, for the following reasons: | ||||
| 
 | ||||
| - Enables customers to fork the checkout repo and modify | ||||
| - Serves as an example for customers | ||||
| - Demystifies the checkout action manifest | ||||
|  | @ -272,6 +282,7 @@ The checkout action should be a typescript action on the GitHub graph, for the f | |||
| - Reduce the amount of runner code to port (if we ever do) | ||||
| 
 | ||||
| Note: | ||||
| 
 | ||||
| - This means job-container images will need git in the PATH, for checkout. | ||||
| 
 | ||||
| ### Branching strategy and release tags | ||||
|  |  | |||
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							|  | @ -16160,9 +16160,9 @@ | |||
|       "dev": true | ||||
|     }, | ||||
|     "prettier": { | ||||
|       "version": "1.19.1", | ||||
|       "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", | ||||
|       "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", | ||||
|       "version": "2.7.1", | ||||
|       "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", | ||||
|       "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "prettier-linter-helpers": { | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
|   "main": "lib/main.js", | ||||
|   "scripts": { | ||||
|     "build": "tsc && ncc build && node lib/misc/generate-docs.js", | ||||
|     "format": "prettier --write '**/*.ts'", | ||||
|     "format-check": "prettier --check '**/*.ts'", | ||||
|     "format": "prettier --write .", | ||||
|     "format-check": "prettier --check .", | ||||
|     "lint": "eslint src/**/*.ts", | ||||
|     "test": "jest", | ||||
|     "licensed-check": "src/misc/licensed-check.sh", | ||||
|  | @ -47,7 +47,7 @@ | |||
|     "jest": "^27.3.0", | ||||
|     "jest-circus": "^27.3.0", | ||||
|     "js-yaml": "^3.13.1", | ||||
|     "prettier": "^1.19.1", | ||||
|     "prettier": "^2.7.1", | ||||
|     "ts-jest": "^27.0.7", | ||||
|     "typescript": "^4.4.4" | ||||
|   } | ||||
|  |  | |||
|  | @ -18,8 +18,9 @@ export function directoryExistsSync(path: string, required?: boolean): boolean { | |||
|     } | ||||
| 
 | ||||
|     throw new Error( | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||
|         ?.message ?? error}` | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${ | ||||
|         (error as any)?.message ?? error | ||||
|       }` | ||||
|     ) | ||||
|   } | ||||
| 
 | ||||
|  | @ -45,8 +46,9 @@ export function existsSync(path: string): boolean { | |||
|     } | ||||
| 
 | ||||
|     throw new Error( | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||
|         ?.message ?? error}` | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${ | ||||
|         (error as any)?.message ?? error | ||||
|       }` | ||||
|     ) | ||||
|   } | ||||
| 
 | ||||
|  | @ -67,8 +69,9 @@ export function fileExistsSync(path: string): boolean { | |||
|     } | ||||
| 
 | ||||
|     throw new Error( | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${(error as any) | ||||
|         ?.message ?? error}` | ||||
|       `Encountered an error when checking whether path '${path}' exists: ${ | ||||
|         (error as any)?.message ?? error | ||||
|       }` | ||||
|     ) | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -49,7 +49,7 @@ class GitAuthHelper { | |||
|     gitSourceSettings: IGitSourceSettings | undefined | ||||
|   ) { | ||||
|     this.git = gitCommandManager | ||||
|     this.settings = gitSourceSettings || (({} as unknown) as IGitSourceSettings) | ||||
|     this.settings = gitSourceSettings || ({} as unknown as IGitSourceSettings) | ||||
| 
 | ||||
|     // Token auth header
 | ||||
|     const serverUrl = urlHelper.getServerUrl(this.settings.githubServerUrl) | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ import * as workflowContextHelper from './workflow-context-helper' | |||
| import {IGitSourceSettings} from './git-source-settings' | ||||
| 
 | ||||
| export async function getInputs(): Promise<IGitSourceSettings> { | ||||
|   const result = ({} as unknown) as IGitSourceSettings | ||||
|   const result = {} as unknown as IGitSourceSettings | ||||
| 
 | ||||
|   // GitHub workspace
 | ||||
|   let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] | ||||
|  | @ -120,7 +120,8 @@ export async function getInputs(): Promise<IGitSourceSettings> { | |||
|     (core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE' | ||||
| 
 | ||||
|   // Workflow organization ID
 | ||||
|   result.workflowOrganizationId = await workflowContextHelper.getOrganizationId() | ||||
|   result.workflowOrganizationId = | ||||
|     await workflowContextHelper.getOrganizationId() | ||||
| 
 | ||||
|   // Set safe.directory in git global config.
 | ||||
|   result.setSafeDirectory = | ||||
|  |  | |||
|  | @ -12,8 +12,8 @@ function updateUsage( | |||
|   actionReference: string, | ||||
|   actionYamlPath = 'action.yml', | ||||
|   readmePath = 'README.md', | ||||
|   startToken = '<!-- start usage -->', | ||||
|   endToken = '<!-- end usage -->' | ||||
|   startToken = '<!-- start usage -->\n', | ||||
|   endToken = '\n<!-- end usage -->' | ||||
| ): void { | ||||
|   if (!actionReference) { | ||||
|     throw new Error('Parameter actionReference must not be empty') | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ export async function getCheckoutInfo( | |||
|     throw new Error('Args ref and commit cannot both be empty') | ||||
|   } | ||||
| 
 | ||||
|   const result = ({} as unknown) as ICheckoutInfo | ||||
|   const result = {} as unknown as ICheckoutInfo | ||||
|   const upperRef = (ref || '').toUpperCase() | ||||
| 
 | ||||
|   // SHA only
 | ||||
|  |  | |||
|  | @ -23,8 +23,9 @@ export async function getOrganizationId(): Promise<number | undefined> { | |||
|     return id as number | ||||
|   } catch (err) { | ||||
|     core.debug( | ||||
|       `Unable to load organization ID from GITHUB_EVENT_PATH: ${(err as any) | ||||
|         .message || err}` | ||||
|       `Unable to load organization ID from GITHUB_EVENT_PATH: ${ | ||||
|         (err as any).message || err | ||||
|       }` | ||||
|     ) | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -2,9 +2,7 @@ | |||
|   "compilerOptions": { | ||||
|     "target": "es6", | ||||
|     "module": "commonjs", | ||||
|     "lib": [ | ||||
|       "es6" | ||||
|     ], | ||||
|     "lib": ["es6"], | ||||
|     "outDir": "./lib", | ||||
|     "rootDir": "./src", | ||||
|     "declaration": true, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Nick Schonning
						Nick Schonning