github.com/ungtb10d/cli/v2@v2.0.0-20221110210412-98537dd9d6a1/pkg/cmd/extension/browse/rg.go (about)

     1  package browse
     2  
     3  import (
     4  	"net/http"
     5  	"time"
     6  
     7  	"github.com/ungtb10d/cli/v2/api"
     8  	"github.com/ungtb10d/cli/v2/internal/ghrepo"
     9  	"github.com/ungtb10d/cli/v2/pkg/cmd/repo/view"
    10  )
    11  
    12  type readmeGetter struct {
    13  	client *http.Client
    14  }
    15  
    16  func newReadmeGetter(client *http.Client, cacheTTL time.Duration) *readmeGetter {
    17  	cachingClient := api.NewCachedHTTPClient(client, cacheTTL)
    18  	return &readmeGetter{
    19  		client: cachingClient,
    20  	}
    21  }
    22  
    23  func (g *readmeGetter) Get(repoFullName string) (string, error) {
    24  	repo, err := ghrepo.FromFullName(repoFullName)
    25  	if err != nil {
    26  		return "", err
    27  	}
    28  	readme, err := view.RepositoryReadme(g.client, repo, "")
    29  	if err != nil {
    30  		return "", err
    31  	}
    32  	return readme.Content, nil
    33  }