checkout/src
Anatoly Rabkin 3ff67abc5a Fix timeout implementation and address review feedback
- Kill git process on timeout: use child_process.spawn directly for
  timeout-eligible operations so we have a ChildProcess handle to send
  SIGTERM (then SIGKILL after 5s). On Windows, SIGTERM is a forced kill
  so the SIGKILL fallback is effectively a no-op there.

- Fix timeout:0 not working: replace falsy || coalescion with explicit
  empty-string check so that '0' is not replaced by the default '300'.

- Refactor execGit to use an options object instead of 5 positional
  parameters, eliminating error-prone filler args (false, false, {}).

- Pass allowAllExitCodes through to execGitWithTimeout so both code
  paths have consistent behavior for non-zero exit codes.

- Add settled guard to prevent double-reject when both close and error
  events fire on the spawned process.

- Handle null exit code (process killed by signal) as an error rather
  than silently treating it as success.

- Capture stderr in error messages for the timeout path, matching the
  information level of the non-timeout exec path.

- Log SIGKILL failures at debug level instead of empty catch block.

- Warn on customListeners being ignored in the timeout path.

- Emit core.warning() when invalid input values are silently replaced
  with defaults, so users know their configuration was rejected.

- Add input validation in setTimeout (reject negative values).

- Clarify retry-max-attempts semantics: total attempts including the
  initial attempt (3 = 1 initial + 2 retries).

- Remove Kubernetes probe references from descriptions.

- Use non-exhaustive list (e.g.) for network operations in docs to
  avoid staleness if new operations are added.

- Add tests for timeout/retry input parsing (defaults, timeout:0,
  custom values, invalid input with warnings, backoff clamping) and
  command manager configuration (setTimeout, setRetryConfig, fetch).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 23:52:14 +02:00
..
misc Update all references from v5 and v4 to v6 (#2314) 2025-11-23 19:32:55 -06:00
fs-helper.ts Update NPM dependencies (#1703) 2024-04-24 12:04:10 -04:00
git-auth-helper.ts Add worktree support for persist-credentials includeIf (#2327) 2025-12-01 19:53:23 -06:00
git-command-manager.ts Fix timeout implementation and address review feedback 2026-03-18 23:52:14 +02:00
git-directory-helper.ts Fix typos found by codespell (#1287) 2023-04-19 16:55:10 +02:00
git-source-provider.ts Add configurable timeout and retry for git network operations 2026-03-18 18:09:42 +02:00
git-source-settings.ts Fix timeout implementation and address review feedback 2026-03-18 23:52:14 +02:00
git-version.ts Convert checkout to a regular action (#70) 2019-12-03 10:28:59 -05:00
github-api-helper.ts Check platform for extension (#1732) 2024-05-16 13:40:36 -04:00
input-helper.ts Fix timeout implementation and address review feedback 2026-03-18 23:52:14 +02:00
main.ts Add Ref and Commit outputs (#1180) 2024-09-05 11:57:13 -04:00
ref-helper.ts Fix tag handling: preserve annotations and explicit fetch-tags (#2356) 2026-01-09 13:42:23 -06:00
regexp-helper.ts add support for submodules (#173) 2020-03-05 14:21:59 -05:00
retry-helper.ts update dev dependencies and react to new linting rules (#611) 2021-10-19 09:52:57 -05:00
state-helper.ts Fix comment typos (that got added in #770) (#1057) 2022-12-28 17:19:08 -05:00
url-helper.ts url-helper.ts now leverages well-known environment variables. (#1941) 2024-10-18 10:07:17 +02:00
workflow-context-helper.ts Update NPM dependencies (#1703) 2024-04-24 12:04:10 -04:00