Documentation
¶
Index ¶
- func ConfigDir() (string, error)
- func ConfigPath() (string, error)
- func Save(cfg *Config) error
- type Config
- type ConfluenceConfig
- type GitLabConfig
- type HomerConfig
- type HomerEndpoint
- type JiraConfig
- type JiraToken
- type LokiConfig
- type PrometheusConfig
- type SQLConfig
- type SQLDatasource
- type SegmentConfig
- type SlackConfig
- type SlackToken
- type StatusLineConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
// Global settings (non-integration specific)
ActivityDays int `json:"activity_days,omitempty" envconfig:"ACTIVITY_DAYS" default:"14"`
// Integration configs (embedded)
GitLab GitLabConfig `json:"gitlab,omitempty"`
Jira JiraConfig `json:"jira,omitempty"`
Confluence ConfluenceConfig `json:"confluence,omitempty"`
Slack SlackConfig `json:"slack,omitempty"`
Loki LokiConfig `json:"loki,omitempty"`
Homer HomerConfig `json:"homer,omitempty"`
Prometheus PrometheusConfig `json:"prometheus,omitempty"`
SQL SQLConfig `json:"sql,omitempty"`
StatusLine StatusLineConfig `json:"status_line,omitempty"`
}
Config is the root configuration struct
func LoadFromFile ¶
LoadFromFile reads config from file only (no env overrides) Used when we want to modify and write back without losing env-only values
func (*Config) RequireConfluence ¶ added in v0.48.0
RequireConfluence validates that Confluence OAuth config is present
func (*Config) RequireGitLab ¶
RequireGitLab validates that GitLab config is present
func (*Config) RequireJira ¶
RequireJira validates that Jira OAuth config is present
func (*Config) RequireLoki ¶ added in v0.6.0
RequireLoki validates that Loki URL is configured
func (*Config) RequirePrometheus ¶ added in v0.39.0
RequirePrometheus validates that Prometheus URL is configured
func (*Config) RequireSlack ¶
RequireSlack validates that Slack bot token is present
type ConfluenceConfig ¶ added in v0.48.0
type ConfluenceConfig struct {
ClientID string `json:"client_id,omitempty" envconfig:"CONFLUENCE_CLIENT_ID"`
ClientSecret string `json:"client_secret,omitempty" envconfig:"CONFLUENCE_CLIENT_SECRET"`
Token *atlassian.Token `json:"token,omitempty"`
}
ConfluenceConfig holds Confluence-specific configuration
type GitLabConfig ¶
type GitLabConfig struct {
URL string `json:"url,omitempty" envconfig:"GITLAB_URL"`
Token string `json:"token,omitempty" envconfig:"GITLAB_PERSONAL_TOKEN"`
}
GitLabConfig holds GitLab-specific configuration
type HomerConfig ¶ added in v0.32.0
type HomerConfig struct {
URL string `json:"url,omitempty" envconfig:"HOMER_URL"`
Username string `json:"username,omitempty" envconfig:"HOMER_USERNAME"`
Password string `json:"password,omitempty" envconfig:"HOMER_PASSWORD"`
Endpoints map[string]HomerEndpoint `json:"endpoints,omitempty"`
}
HomerConfig holds Homer SIP tracing configuration
type HomerEndpoint ¶ added in v0.32.0
type HomerEndpoint struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
}
HomerEndpoint holds credentials for a specific Homer endpoint
type JiraConfig ¶
type JiraConfig struct {
ClientID string `json:"client_id,omitempty" envconfig:"JIRA_CLIENT_ID"`
ClientSecret string `json:"client_secret,omitempty" envconfig:"JIRA_CLIENT_SECRET"`
BaseURL string `json:"base_url,omitempty" envconfig:"JIRA_BASE_URL"`
CloudID string `json:"cloud_id,omitempty"`
Token *atlassian.Token `json:"token,omitempty"`
}
JiraConfig holds Jira-specific configuration
type LokiConfig ¶ added in v0.6.0
type LokiConfig struct {
URL string `json:"url,omitempty" envconfig:"LOKI_URL"`
}
LokiConfig holds Loki-specific configuration
type PrometheusConfig ¶ added in v0.39.0
type PrometheusConfig struct {
URL string `json:"url,omitempty" envconfig:"PROMETHEUS_URL"`
}
PrometheusConfig holds Prometheus-specific configuration
type SQLConfig ¶ added in v0.25.0
type SQLConfig struct {
Datasources map[string]SQLDatasource `json:"datasources,omitempty"`
}
SQLConfig holds SQL datasource configuration
type SQLDatasource ¶ added in v0.25.0
type SQLDatasource struct {
Host string `json:"host"`
Port int `json:"port,omitempty"` // Default: 3306 for MySQL
Username string `json:"username"`
Password string `json:"password"`
Database string `json:"database"`
}
SQLDatasource holds connection info for a single datasource
type SegmentConfig ¶ added in v0.22.0
type SegmentConfig struct {
Enabled *bool `json:"enabled,omitempty"`
Format string `json:"format,omitempty"`
CacheTTL string `json:"cache_ttl,omitempty"`
}
SegmentConfig holds configuration for a single status line segment
type SlackConfig ¶
type SlackConfig struct {
// OAuth credentials (for `dex slack auth`)
ClientID string `json:"client_id,omitempty" envconfig:"SLACK_CLIENT_ID"`
ClientSecret string `json:"client_secret,omitempty" envconfig:"SLACK_CLIENT_SECRET"`
Token *SlackToken `json:"token,omitempty"`
// Manual tokens (legacy, can be set directly or via OAuth)
BotToken string `json:"bot_token,omitempty" envconfig:"SLACK_BOT_TOKEN"`
AppToken string `json:"app_token,omitempty" envconfig:"SLACK_APP_TOKEN"` // For Socket Mode
UserToken string `json:"user_token,omitempty" envconfig:"SLACK_USER_TOKEN"` // For search API
}
SlackConfig holds Slack-specific configuration
type SlackToken ¶
type SlackToken struct {
AccessToken string `json:"access_token"` // Bot token (xoxb-...)
UserToken string `json:"user_token,omitempty"` // User token (xoxp-...) if user scopes requested
RefreshToken string `json:"refresh_token,omitempty"` // For token rotation
TeamID string `json:"team_id"`
TeamName string `json:"team_name"`
BotUserID string `json:"bot_user_id"`
}
SlackToken holds Slack OAuth tokens
type StatusLineConfig ¶ added in v0.22.0
type StatusLineConfig struct {
Format string `json:"format,omitempty"`
Segments map[string]SegmentConfig `json:"segments,omitempty"`
}
StatusLineConfig holds status line configuration for Claude Code