cli/pkg/cmd/attestation/verification/tuf.go
Meredith Lancaster 49dfa3f6d5 use CLI cache dir to store tuf metadata
Signed-off-by: Meredith Lancaster <malancas@github.com>
2024-03-20 15:18:19 -06:00

41 lines
1 KiB
Go

package verification
import (
_ "embed"
"os"
"path/filepath"
"github.com/cli/go-gh/v2/pkg/config"
"github.com/sigstore/sigstore-go/pkg/tuf"
)
//go:embed embed/tuf-repo.github.com/root.json
var githubRoot []byte
const GitHubTUFMirror = "https://tuf-repo.github.com"
func DefaultOptionsWithCacheSetting() *tuf.Options {
opts := tuf.DefaultOptions()
// The CODESPACES environment variable will be set to true in a Codespaces workspace
if os.Getenv("CODESPACES") == "true" {
// if the tool is being used in a Codespace, disable the local cache
// because there is a permissions issue preventing the tuf library
// from writing the Sigstore cache to the home directory
opts.DisableLocalCache = true
}
// Set the cache path to a directory owned by the CLI
opts.CachePath = filepath.Join(config.CacheDir(), ".sigstore", "root")
return opts
}
func GitHubTUFOptions() *tuf.Options {
opts := DefaultOptionsWithCacheSetting()
opts.Root = githubRoot
opts.RepositoryBaseURL = GitHubTUFMirror
return opts
}