github

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package github provides a client for the GitHub Contents API. It fetches file contents and directory listings from repositories.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	BaseURL    string       // defaults to "https://api.github.com"
	Token      string       // optional bearer token
	HTTPClient *http.Client // optional; falls back to http.DefaultClient
}

Client accesses the GitHub Contents API.

func (*Client) FetchDir

func (c *Client) FetchDir(ctx context.Context, owner, repo, ref, path string) ([]ContentEntry, error)

FetchDir lists the contents of a directory in a GitHub repository.

func (*Client) FetchDirRecursive added in v1.1.0

func (c *Client) FetchDirRecursive(ctx context.Context, owner, repo, ref, root string) ([]ContentEntry, error)

FetchDirRecursive lists all files under root recursively using BFS. Directories are not included in the results. The initial call to root propagates errors; errors on individual subdirectories are silently skipped. Pass root="" to start from the repository root.

func (*Client) FetchFile

func (c *Client) FetchFile(ctx context.Context, owner, repo, ref, path string) (string, error)

FetchFile downloads the raw content of a file from a GitHub repository.

type ContentEntry

type ContentEntry struct {
	Name string `json:"name"`
	Path string `json:"path"`
	Type string `json:"type"` // "file" or "dir"
}

ContentEntry represents a file or directory in a GitHub repository listing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL