• Add missing `await`s (#379)

    Ghost released this 2020-11-03 22:44:09 +08:00 | 111 commits to main since this release

    • 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 awaiting 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 awaits.

    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

    Downloads