in internal/app/http_client.go [75:109]
func getCA(ca string) ([]byte, error) {
// If a new line is found it means that we were given a CA block rather than a path.
if strings.ContainsRune(ca, '\n') {
return []byte(ca), nil
}
baseDir, err := os.Getwd()
if err != nil {
return nil, err
}
filePath, err := securejoin.SecureJoin(baseDir, ca)
if err != nil {
return nil, err
}
if _, statErr := os.Stat(filePath); errors.Is(statErr, os.ErrNotExist) {
buildsDir := os.Getenv("CI_BUILDS_DIR")
if buildsDir == "" {
return nil, statErr
}
rel, err := filepath.Rel(buildsDir, ca)
if err != nil {
return nil, err
}
filePath, err = securejoin.SecureJoin(buildsDir, rel)
if err != nil {
return nil, err
}
}
return os.ReadFile(filepath.Clean(filePath))
}