mirror of
https://github.com/actions/checkout.git
synced 2024-10-06 03:16:47 +00:00
![Johannes Schindelin](/assets/img/avatar_default.png)
* auth-helper: properly await replacement of the token value in the config After writing the `.extraheader` config, we manually replace the token with the actual value. This is done in an `async` function, but we were not `await`ing the result. In our tests, this commit fixes a flakiness we observed where `remote.origin.url` sometimes (very rarely, actually) is not set for submodules. Our interpretation is that the configs are in the process of being rewritten with the correct token value _while_ another `git config` that wants to set the `insteadOf` value is reading the config, which is currently empty. A more idiomatic way to fix this in Typescript would use `Promise.all()`, like this: await Promise.all( configPaths.map(async configPath => { core.debug(`Replacing token placeholder in '${configPath}'`) await this.replaceTokenPlaceholder(configPath) }) ) However, during review of https://github.com/actions/checkout/pull/379 it was decided to keep the `for` loop in the interest of simplicity. Reported by Ian Lynagh. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> * downloadRepository(): await the result of recursive deletions Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> * Ask ESLint to report floating Promises This rule is quite helpful in avoiding hard-to-debug missing `await`s. Note: there are two locations in `src/main.ts` that trigger warnings: the `run()` and the `cleanup()` function are called without `await` and without any `.catch()` clause. In the initial version of https://github.com/actions/checkout/pull/379, this was addressed by adding `.catch()` clauses. However, it was determined that this is boilerplate code that will need to be fixed in a broader way. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> * Rebuild This trick was brought to you by `npm ci && npm run build`. Needed to get the PR build to pass. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
59 lines
2.5 KiB
JSON
59 lines
2.5 KiB
JSON
{
|
|
"plugins": ["jest", "@typescript-eslint"],
|
|
"extends": ["plugin:github/es6"],
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"ecmaVersion": 9,
|
|
"sourceType": "module",
|
|
"project": "./tsconfig.json"
|
|
},
|
|
"rules": {
|
|
"eslint-comments/no-use": "off",
|
|
"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/no-require-imports": "error",
|
|
"@typescript-eslint/array-type": "error",
|
|
"@typescript-eslint/await-thenable": "error",
|
|
"@typescript-eslint/ban-ts-ignore": "error",
|
|
"camelcase": "off",
|
|
"@typescript-eslint/camelcase": "error",
|
|
"@typescript-eslint/class-name-casing": "error",
|
|
"@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
|
|
"@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-empty-interface": "error",
|
|
"@typescript-eslint/no-explicit-any": "error",
|
|
"@typescript-eslint/no-extraneous-class": "error",
|
|
"@typescript-eslint/no-floating-promises": "error",
|
|
"@typescript-eslint/no-for-in-array": "error",
|
|
"@typescript-eslint/no-inferrable-types": "error",
|
|
"@typescript-eslint/no-misused-new": "error",
|
|
"@typescript-eslint/no-namespace": "error",
|
|
"@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-type-assertion": "error",
|
|
"@typescript-eslint/no-useless-constructor": "error",
|
|
"@typescript-eslint/no-var-requires": "error",
|
|
"@typescript-eslint/prefer-for-of": "warn",
|
|
"@typescript-eslint/prefer-function-type": "warn",
|
|
"@typescript-eslint/prefer-includes": "error",
|
|
"@typescript-eslint/prefer-interface": "error",
|
|
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
|
"@typescript-eslint/promise-function-async": "error",
|
|
"@typescript-eslint/require-array-sort-compare": "error",
|
|
"@typescript-eslint/restrict-plus-operands": "error",
|
|
"semi": "off",
|
|
"@typescript-eslint/semi": ["error", "never"],
|
|
"@typescript-eslint/type-annotation-spacing": "error",
|
|
"@typescript-eslint/unbound-method": "error"
|
|
},
|
|
"env": {
|
|
"node": true,
|
|
"es6": true,
|
|
"jest/globals": true
|
|
}
|
|
}
|