Add configurable get_sources timeout to runner config
## Problem Jobs sometimes time out during the `get_sources` stage, such as when the `git clone` operation to fetch the repository from the remote hangs. In these situations, the timeout that is reached is actually the job-level timeout, which may be long (e.g., 2 hours) to accommodate the main part of the job. If the `get_sources` stage is stuck, such as due to a hung network transfer, there is no mechanism to terminate the job early (it must wait the full job timeout), which wastes a concurrency slot and delays feedback. ## Proposed Solution Introduce a configurable timeout for the `get_sources` stage, allowing jobs to fail fast. ## Expected Behaviour 1. A `get_sources_timeout` config option is supported in the runner config (`config.toml`) as a `*time.Duration` 2. The `get_sources_timeout` defaults to the job timeout (to ensure backward compatibility). 3. If `get_sources_timeout` is configured to be a value greater than the job timeout, it is clamped to the job timeout and a warning is logged to indicate this Similar work has been done for https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/26583+. This should be used as a reference for the implementation (config field, accessor method, enforcement). ## Extensions 1. A job-level CI variable override (like `RUNNER_SCRIPT_TIMEOUT`) is a natural follow-up to this, allowing for the runner-level timeout to be overridden with a shorter value if appropriate
issue