package checkrunner import ( "context" "fmt" "net/http" "time" ) // HTTPS performs a GET against target (expected to be a full URL, e.g. // https://github.com) and reports success for any response with status // < 400. It never follows the check to a different host on a check-type // boundary — redirects within the same request are followed by the // standard http.Client default policy, which is what we want for // reachability checks. func HTTPS(target string, timeout time.Duration) func(ctx context.Context) Result { return run("https", target, func(ctx context.Context) error { ctx, cancel := context.WithTimeout(ctx, timeout) defer cancel() req, err := http.NewRequestWithContext(ctx, http.MethodGet, target, nil) if err != nil { return fmt.Errorf("build request: %w", err) } client := &http.Client{Timeout: timeout} resp, err := client.Do(req) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode >= 400 { return fmt.Errorf("unexpected status %d", resp.StatusCode) } return nil }) }