in http-cache-action/proxy/proxy.go [229:255]
func reserveCache(key string) (int, error) {
requestUrl := getCacheApiUrl("caches")
requestBody := fmt.Sprintf("{ \"key\": \"%s\", \"version\": \"%s\" }", key, calculateSHA256(key))
request, _ := http.NewRequest("POST", requestUrl, bytes.NewBufferString(requestBody))
request.Header.Set("Authorization", "Bearer "+token)
request.Header.Set("User-Agent", "actions/cache")
request.Header.Set("Content-Type", "application/json")
request.Header.Set("Accept", "application/json;api-version=6.0-preview.1")
request.Header.Set("Accept-Charset", "utf-8")
response, err := httpClient.Do(request)
if err != nil {
return -1, err
}
defer response.Body.Close()
bodyBytes, err := ioutil.ReadAll(utfbom.SkipOnly(response.Body))
if response.StatusCode >= 400 {
return -1, fmt.Errorf("failed to reserve cache: %d", response.StatusCode)
}
var cacheResponse ReserveCacheResponse
err = json.Unmarshal(bodyBytes, &cacheResponse)
if err != nil {
return -1, err
}
return cacheResponse.CacheId, nil
}