Directories
¶
| Path | Synopsis |
|---|---|
|
Package authn provides transport-agnostic credential verification primitives for the HTTP and gRPC server transports.
|
Package authn provides transport-agnostic credential verification primitives for the HTTP and gRPC server transports. |
|
Package browser provides a safe entry point for opening URLs in the user's default browser or mail client.
|
Package browser provides a safe entry point for opening URLs in the user's default browser or mail client. |
|
Package changelog generates and parses changelogs from Conventional Commits, in pure Go.
|
Package changelog generates and parses changelogs from Conventional Commits, in pure Go. |
|
Package chat provides a unified multi-provider AI chat client supporting Claude, OpenAI, Gemini, Claude Local (via CLI binary), and OpenAI-compatible endpoints.
|
Package chat provides a unified multi-provider AI chat client supporting Claude, OpenAI, Gemini, Claude Local (via CLI binary), and OpenAI-compatible endpoints. |
|
cmd
|
|
|
changelog
Package changelog provides the `changelog` command for displaying version history from an embedded CHANGELOG.md, with optional version and since-tag filtering.
|
Package changelog provides the `changelog` command for displaying version history from an embedded CHANGELOG.md, with optional version and since-tag filtering. |
|
config
Package config implements the "config" CLI command and its subcommands for programmatic read/write access to individual configuration keys.
|
Package config implements the "config" CLI command and its subcommands for programmatic read/write access to individual configuration keys. |
|
docs
Package docs provides the Cobra `docs` command for browsing this tool's embedded documentation in a terminal (an interactive Bubble Tea browser), with two subcommands: `serve` (host the docs as a static HTTP site) and `ask` (AI-assisted Q&A grounded in the bundled docs at runtime).
|
Package docs provides the Cobra `docs` command for browsing this tool's embedded documentation in a terminal (an interactive Bubble Tea browser), with two subcommands: `serve` (host the docs as a static HTTP site) and `ask` (AI-assisted Q&A grounded in the bundled docs at runtime). |
|
doctor
Package doctor provides a diagnostic command that validates configuration, checks environment health, and reports runtime details.
|
Package doctor provides a diagnostic command that validates configuration, checks environment health, and reports runtime details. |
|
initialise
Package initialise provides the Cobra command for bootstrapping a new tool's configuration directory and default config file, running registered setup.Initialiser hooks in sequence.
|
Package initialise provides the Cobra command for bootstrapping a new tool's configuration directory and default config file, running registered setup.Initialiser hooks in sequence. |
|
man
Package man implements the hidden, opt-in "man" command that emits roff man pages for a tool's own command tree at runtime — for packaging postinstall scripts or ad-hoc preview — without re-running the source-tree generator.
|
Package man implements the hidden, opt-in "man" command that emits roff man pages for a tool's own command tree at runtime — for packaging postinstall scripts or ad-hoc preview — without re-running the source-tree generator. |
|
root
Package root provides the reusable root Cobra command constructor that wires configuration loading, logging setup, update checks, and feature-flagged subcommand registration (version, update, init, doctor, config, telemetry, changelog, man, MCP, docs).
|
Package root provides the reusable root Cobra command constructor that wires configuration loading, logging setup, update checks, and feature-flagged subcommand registration (version, update, init, doctor, config, telemetry, changelog, man, MCP, docs). |
|
telemetry
Package telemetry provides the `telemetry` command group for managing pseudonymous usage telemetry: enable, disable, status, and reset subcommands.
|
Package telemetry provides the `telemetry` command group for managing pseudonymous usage telemetry: enable, disable, status, and reset subcommands. |
|
update
Package update provides the Cobra command for self-updating the CLI binary to the latest released version from the configured release source (GitHub or GitLab), with support for private repositories via token authentication.
|
Package update provides the Cobra command for self-updating the CLI binary to the latest released version from the configured release source (GitHub or GitLab), with support for private repositories via token authentication. |
|
version
Package version provides the Cobra command for displaying the CLI's current version, build date, and commit information.
|
Package version provides the Cobra command for displaying the CLI's current version, build date, and commit information. |
|
Package config provides configuration loading, merging, and access via the Containable interface backed by Viper.
|
Package config provides configuration loading, merging, and access via the Containable interface backed by Viper. |
|
Package controls provides a lifecycle controller for managing concurrent, long-running services such as HTTP servers, background workers, and schedulers.
|
Package controls provides a lifecycle controller for managing concurrent, long-running services such as HTTP servers, background workers, and schedulers. |
|
Package credentials describes how a user-supplied secret (VCS token, AI-provider API key, Bitbucket dual-credential blob) is persisted by the interactive setup wizard and resolved by the runtime config chain.
|
Package credentials describes how a user-supplied secret (VCS token, AI-provider API key, Bitbucket dual-credential blob) is persisted by the interactive setup wizard and resolved by the runtime config chain. |
|
credtest
Package credtest provides test-only credential backends so downstream tests can exercise keychain-mode behaviour without pulling in github.com/zalando/go-keyring.
|
Package credtest provides test-only credential backends so downstream tests can exercise keychain-mode behaviour without pulling in github.com/zalando/go-keyring. |
|
keychain
Package keychain is the optional OS-keychain backend for gitlab.com/phpboyscout/go-tool-base/pkg/credentials.
|
Package keychain is the optional OS-keychain backend for gitlab.com/phpboyscout/go-tool-base/pkg/credentials. |
|
Package docs provides a documentation system with two subsystems: a generation engine that parses Cobra command trees into Markdown files with hierarchy-aware index management, and a TUI browser built on Bubbles with split-pane navigation, async search, and AI-powered Q&A via retrieval-augmented generation (RAG).
|
Package docs provides a documentation system with two subsystems: a generation engine that parses Cobra command trees into Markdown files with hierarchy-aware index management, and a TUI browser built on Bubbles with split-pane navigation, async search, and AI-powered Q&A via retrieval-augmented generation (RAG). |
|
Package errorhandling provides structured, user-friendly error reporting for CLI tools built with GTB.
|
Package errorhandling provides structured, user-friendly error reporting for CLI tools built with GTB. |
|
Package forms provides multi-stage interactive form wizards built on top of the huh library, supporting forward/back navigation, dynamic stage construction, and navigable form groups for CLI project configuration workflows.
|
Package forms provides multi-stage interactive form wizards built on top of the huh library, supporting forward/back navigation, dynamic stage construction, and navigable form groups for CLI project configuration workflows. |
|
Package gateway makes a grpc-gateway a first-class transport: it dials the local gRPC server (matching its transport security) and serves the generated REST handlers, either mounted on an existing HTTP server (New) or as its own controller-managed HTTP server on the "server.gateway" config block (Register).
|
Package gateway makes a grpc-gateway a first-class transport: it dials the local gRPC server (matching its transport security) and serves the generated REST handlers, either mounted on an existing HTTP server (New) or as its own controller-managed HTTP server on the "server.gateway" config block (Register). |
|
Package grpc provides a gRPC server toolkit for GTB services: a server bootstrap that integrates with the pkg/controls lifecycle and the standard gRPC health protocol, plus a suite of composable server interceptors — authentication (AuthInterceptor), logging, OpenTelemetry stats handlers, rate limiting, and circuit breaking — and TLS credential helpers.
|
Package grpc provides a gRPC server toolkit for GTB services: a server bootstrap that integrates with the pkg/controls lifecycle and the standard gRPC health protocol, plus a suite of composable server interceptors — authentication (AuthInterceptor), logging, OpenTelemetry stats handlers, rate limiting, and circuit breaking — and TLS credential helpers. |
|
Package http provides an HTTP server and client toolkit for GTB services.
|
Package http provides an HTTP server and client toolkit for GTB services. |
|
Package logger provides a unified logging interface for GTB applications.
|
Package logger provides a unified logging interface for GTB applications. |
|
Package openapi serves an OpenAPI specification and a Stoplight Elements docs site (interactive, with a "try it" console) from a single Register call.
|
Package openapi serves an OpenAPI specification and a Stoplight Elements docs site (interactive, with a "try it" console) from a single Register call. |
|
Package openpgpkey mints an ASCII-armored OpenPGP public key from a crypto.Signer.
|
Package openpgpkey mints an ASCII-armored OpenPGP public key from a crypto.Signer. |
|
Package osinfo reports a human-readable operating-system version string.
|
Package osinfo reports a human-readable operating-system version string. |
|
Package output provides structured output formatting, table rendering, and progress indicators for CLI commands.
|
Package output provides structured output formatting, table rendering, and progress indicators for CLI commands. |
|
Package props defines the Props dependency container, the central type-safe dependency injection mechanism used throughout GTB.
|
Package props defines the Props dependency container, the central type-safe dependency injection mechanism used throughout GTB. |
|
propstest
Package propstest provides a public test-fixture helper for constructing a fully-wired *props.Props with hermetic, safe defaults.
|
Package propstest provides a public test-fixture helper for constructing a fully-wired *props.Props with hermetic, safe defaults. |
|
Package redact strips credential-like content from free-form strings at the boundary between trusted and untrusted observability surfaces (telemetry vendors, log aggregators, metric stores).
|
Package redact strips credential-like content from free-form strings at the boundary between trusted and untrusted observability surfaces (telemetry vendors, log aggregators, metric stores). |
|
Package regexutil provides bounded, DoS-safe wrappers around regexp.Compile for every call path that takes a user- or config-supplied regex pattern.
|
Package regexutil provides bounded, DoS-safe wrappers around regexp.Compile for every call path that takes a user- or config-supplied regex pattern. |
|
Package setup provides initialisation helpers for GTB-based tools, including configuration directory bootstrapping, default config file creation, and self-update orchestration.
|
Package setup provides initialisation helpers for GTB-based tools, including configuration directory bootstrapping, default config file creation, and self-update orchestration. |
|
ai
Package ai provides the interactive AI-provider setup initialiser.
|
Package ai provides the interactive AI-provider setup initialiser. |
|
bitbucket
Package bitbucket implements the interactive setup wizard for Bitbucket Cloud authentication.
|
Package bitbucket implements the interactive setup wizard for Bitbucket Cloud authentication. |
|
github
Package github provides the interactive GitHub setup initialiser.
|
Package github provides the interactive GitHub setup initialiser. |
|
telemetry
Package telemetry registers the telemetry initialiser with the setup system.
|
Package telemetry registers the telemetry initialiser with the setup system. |
|
Package signing exposes a registry of signing-key backends.
|
Package signing exposes a registry of signing-key backends. |
|
kms
Package kms is the AWS KMS backend for pkg/signing.
|
Package kms is the AWS KMS backend for pkg/signing. |
|
local
Package local is the on-disk PEM-encoded RSA private key backend for pkg/signing.
|
Package local is the on-disk PEM-encoded RSA private key backend for pkg/signing. |
|
Package telemetry provides an opt-in telemetry framework with pluggable backends, privacy controls, bounded buffering, and GDPR-compliant data deletion for CLI tools built on GTB.
|
Package telemetry provides an opt-in telemetry framework with pluggable backends, privacy controls, bounded buffering, and GDPR-compliant data deletion for CLI tools built on GTB. |
|
datadog
Package datadog provides a telemetry backend that sends events to Datadog's HTTP Logs Intake API.
|
Package datadog provides a telemetry backend that sends events to Datadog's HTTP Logs Intake API. |
|
logs
Package logs builds an OpenTelemetry LoggerProvider that batches log records to an OTLP/HTTP collector, and an slog.Handler bridge so the GTB logger can emit OTel records as well as its human-readable stderr output.
|
Package logs builds an OpenTelemetry LoggerProvider that batches log records to an OTLP/HTTP collector, and an slog.Handler bridge so the GTB logger can emit OTel records as well as its human-readable stderr output. |
|
metrics
Package metrics builds an OpenTelemetry MeterProvider that pushes metrics to an OTLP/HTTP collector on a periodic interval, configured from a resolved otelcore.Settings.
|
Package metrics builds an OpenTelemetry MeterProvider that pushes metrics to an OTLP/HTTP collector on a periodic interval, configured from a resolved otelcore.Settings. |
|
otelcore
Package otelcore holds the OTLP/OTel export plumbing shared by GTB's analytics pipeline and its web-service observability signals: OTLP/HTTP endpoint parsing, the service resource, and telemetry.* configuration resolution.
|
Package otelcore holds the OTLP/OTel export plumbing shared by GTB's analytics pipeline and its web-service observability signals: OTLP/HTTP endpoint parsing, the service resource, and telemetry.* configuration resolution. |
|
posthog
Package posthog provides a telemetry backend that sends events to PostHog's Capture API (batch payload form).
|
Package posthog provides a telemetry backend that sends events to PostHog's Capture API (batch payload form). |
|
tracing
Package tracing builds an OpenTelemetry TracerProvider that batches spans to an OTLP/HTTP collector, configured from a resolved otelcore.Settings.
|
Package tracing builds an OpenTelemetry TracerProvider that batches spans to an OTLP/HTTP collector, configured from a resolved otelcore.Settings. |
|
Package tls holds the shared TLS plumbing used across every transport in the framework (HTTP, gRPC and the gateway): the hardened default config, the typed TLSPair config shape with shared/per-transport resolution, and the client-side cert-pool helpers.
|
Package tls holds the shared TLS plumbing used across every transport in the framework (HTTP, gRPC and the gateway): the hardened default config, the typed TLSPair config shape with shared/per-transport resolution, and the client-side cert-pool helpers. |
|
Package utils provides small shared utility functions used across the GTB framework: PATH/executable resolution with install-instruction hints (GracefulGetPath) and terminal-interactivity detection (IsInteractive).
|
Package utils provides small shared utility functions used across the GTB framework: PATH/executable resolution with install-instruction hints (GracefulGetPath) and terminal-interactivity detection (IsInteractive). |
|
Package vcs defines the version-control abstraction layer for querying releases and repository metadata across multiple forge backends.
|
Package vcs defines the version-control abstraction layer for querying releases and repository metadata across multiple forge backends. |
|
bitbucket
Package bitbucket provides a release.Provider implementation for Bitbucket Cloud using the Downloads API.
|
Package bitbucket provides a release.Provider implementation for Bitbucket Cloud using the Downloads API. |
|
direct
Package direct provides a release.Provider implementation for tools distributed via arbitrary HTTP servers.
|
Package direct provides a release.Provider implementation for tools distributed via arbitrary HTTP servers. |
|
gitea
Package gitea provides a release.Provider implementation for Gitea and Forgejo instances, including Codeberg (codeberg.org).
|
Package gitea provides a release.Provider implementation for Gitea and Forgejo instances, including Codeberg (codeberg.org). |
|
github
Package github implements the VCS release provider and API client for GitHub repositories, supporting both public and token-authenticated access.
|
Package github implements the VCS release provider and API client for GitHub repositories, supporting both public and token-authenticated access. |
|
gitlab
Package gitlab implements the VCS release provider for GitLab repositories, supporting both public and token-authenticated access; the owner may be a slash-separated group path passed through to the GitLab API.
|
Package gitlab implements the VCS release provider for GitLab repositories, supporting both public and token-authenticated access; the owner may be a slash-separated group path passed through to the GitLab API. |
|
release
Package release provides the shared release abstractions (Release, ReleaseAsset) and a pluggable Provider registry and factory.
|
Package release provides the shared release abstractions (Release, ReleaseAsset) and a pluggable Provider registry and factory. |
|
release/releasetest
Package releasetest provides an in-memory release.Provider test double and asset builders for exercising the self-update pipeline without network or disk access.
|
Package releasetest provides an in-memory release.Provider test double and asset builders for exercising the self-update pipeline without network or disk access. |
|
repo
Package repo provides git repository operations (clone, checkout, commit, push, tree inspection) backed by go-git, behind the RepoLike abstraction with local-filesystem and in-memory storage backends.
|
Package repo provides git repository operations (clone, checkout, commit, push, tree inspection) backed by go-git, behind the RepoLike abstraction with local-filesystem and in-memory storage backends. |
|
repo/aferobilly
Package aferobilly adapts a go-billy/v5 Filesystem to an afero.Fs.
|
Package aferobilly adapts a go-billy/v5 Filesystem to an afero.Fs. |
|
Package version provides semantic version parsing, comparison, and development-build detection via the Version interface.
|
Package version provides semantic version parsing, comparison, and development-build detection via the Version interface. |
|
Package workspace provides project root detection by walking up from a starting directory to find marker files (.gtb/manifest.yaml, go.mod, .git).
|
Package workspace provides project root detection by walking up from a starting directory to find marker files (.gtb/manifest.yaml, go.mod, .git). |
Click to show internal directories.
Click to hide internal directories.