33 lines
685 B
Go
33 lines
685 B
Go
package browse
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/cli/cli/v2/api"
|
|
"github.com/cli/cli/v2/internal/ghrepo"
|
|
"github.com/cli/cli/v2/pkg/cmd/repo/view"
|
|
)
|
|
|
|
type readmeGetter struct {
|
|
client *http.Client
|
|
}
|
|
|
|
func newReadmeGetter(client *http.Client, cacheTTL time.Duration) *readmeGetter {
|
|
cachingClient := api.NewCachedHTTPClient(client, cacheTTL)
|
|
return &readmeGetter{
|
|
client: cachingClient,
|
|
}
|
|
}
|
|
|
|
func (g *readmeGetter) Get(repoFullName string) (string, error) {
|
|
repo, err := ghrepo.FromFullName(repoFullName)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
readme, err := view.RepositoryReadme(g.client, repo, "")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return readme.Content, nil
|
|
}
|