Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Dir ¶
type Dir struct {
fs.Inode
Client *github.Client
Logger *slog.Logger
Owner string
Repo string
Path string // Path within the repository (e.g., "docker" or "src/main")
}
Dir represents a directory within a GitHub repository
type FS ¶
FS represents the FUSE filesystem root
type File ¶
type File struct {
fs.Inode
Content *github.RepositoryContent
Client *github.Client
Logger *slog.Logger
Owner string
Repo string
}
File represents a file within a GitHub repository
type FileHandle ¶
type FileHandle struct {
// contains filtered or unexported fields
}
FileHandle represents an open file handle
type GitHubHTTPTransport ¶
type GitHubHTTPTransport struct {
Token string // Empty if unauthenticated
Base http.RoundTripper
Logger *slog.Logger
}
GitHubHTTPTransport handles authentication and logging.
type Repository ¶
Repository represents a GitHub repository directory
func (*Repository) Getattr ¶
func (r *Repository) Getattr(ctx context.Context, fh fs.FileHandle, out *fuse.AttrOut) syscall.Errno
type RevalidationSuppressor ¶
type RevalidationSuppressor struct {
Base http.RoundTripper
SuppressDuration time.Duration
Logger *slog.Logger
MaxEntries int // Maximum number of URLs to track (default 1000)
// contains filtered or unexported fields
}
RevalidationSuppressor wraps an http.RoundTripper and suppresses revalidation requests for a configured duration after receiving a 304 Not Modified response.
TODO: Replace homegrown LRU with a more efficient implementation (e.g., hashicorp/golang-lru or github.com/karlseguin/ccache) to reduce allocations and lock contention.
func (*RevalidationSuppressor) ClearSuppressionCache ¶
func (r *RevalidationSuppressor) ClearSuppressionCache()
ClearSuppressionCache clears the revalidation suppression cache, allowing immediate revalidation. This is useful when users want to force a refresh of cached data.