config

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetRepoConfigPath added in v1.6.0

func GetRepoConfigPath() string

GetRepoConfigPath returns the path to the repository-local config file Returns empty string if not in a git repository

func SaveConfig

func SaveConfig(config *Config) error

func SaveLocalConfig added in v1.6.0

func SaveLocalConfig(config *Config) error

SaveLocalConfig saves config to repository-local location

func SupportedTicketServices

func SupportedTicketServices() []string

func SupportedVCSProviders

func SupportedVCSProviders() []string

Types

type AI

type AI string
const (
	AIGemini AI = "gemini"
	AIOpenAI AI = "openai"
)

func SupportedAIs

func SupportedAIs() []AI

type AIConfig

type AIConfig struct {
	ActiveAI    AI           `json:"active_ai"`
	Models      map[AI]Model `json:"models"`
	BudgetDaily *float64     `json:"budget_daily,omitempty"`
}

type AIProviderConfig

type AIProviderConfig struct {
	APIKey      string  `json:"api_key"`
	Model       string  `json:"model,omitempty"`
	Temperature float32 `json:"temperature,omitempty"`
	MaxTokens   int     `json:"max_tokens,omitempty"`
}

type Config

type Config struct {
	Language         string `json:"language"`
	UseEmoji         bool   `json:"use_emoji"`
	SuggestionsCount int    `json:"suggestions_count"`
	PathFile         string `json:"path_file"`

	AIProviders map[string]AIProviderConfig `json:"ai_providers,omitempty"`
	AIConfig    AIConfig                    `json:"ai_config"`

	TicketProviders     map[string]TicketProviderConfig `json:"ticket_providers,omitempty"`
	ActiveTicketService string                          `json:"active_ticket_service,omitempty"`
	UseTicket           bool                            `json:"use_ticket,omitempty"`

	VCSConfigs        map[string]VCSConfig `json:"vcs_configs"`
	ActiveVCSProvider string               `json:"active_vcs_provider,omitempty"`
	UpdateChangelog   bool                 `json:"update_changelog"`
	VersionFile       string               `json:"version_file,omitempty"`
	VersionPattern    string               `json:"version_pattern,omitempty"`
	AutoFetchTags     bool                 `json:"auto_fetch_tags"`
	GitFallback       GitConfig            `json:"git_fallback,omitempty"`
}

func CreateDefaultConfig added in v1.6.0

func CreateDefaultConfig(path string) (*Config, error)

func LoadConfig

func LoadConfig(path string) (*Config, error)

func LoadConfigWithHierarchy added in v1.6.0

func LoadConfigWithHierarchy(globalPath string) (*Config, error)

LoadConfigWithHierarchy loads config with repository-local override support Priority: local (.matecommit/config.json) > global (~/.config/matecommit/config.json)

func MergeConfigs added in v1.6.0

func MergeConfigs(global, local *Config) *Config

MergeConfigs merges local config over global config Non-zero/non-empty values in local override global

type GitConfig added in v1.6.0

type GitConfig struct {
	UserName  string `json:"user_name,omitempty"`
	UserEmail string `json:"user_email,omitempty"`
}

type Model

type Model string
const (
	ModelGeminiV15Pro   Model = "gemini-1.5-pro"
	ModelGeminiV15Flash Model = "gemini-1.5-flash"
	ModelGeminiV25Flash Model = "gemini-2.5-flash"
	ModelGeminiV3Pro    Model = "gemini-3-pro-preview"
	ModelGeminiV3Flash  Model = "gemini-3-flash-preview"

	// TODO: Add more models for OpenAI or others...
	ModelGPTV4o Model = "gpt-4o"
)

func DefaultModelForAI

func DefaultModelForAI(ai AI) Model

func ModelsForAI

func ModelsForAI(ai AI) []Model

type TicketProviderConfig

type TicketProviderConfig struct {
	APIKey   string            `json:"api_key"`
	BaseURL  string            `json:"base_url,omitempty"`
	Email    string            `json:"email,omitempty"`
	Username string            `json:"username,omitempty"`
	Extra    map[string]string `json:"extra,omitempty"`
}

type VCSConfig

type VCSConfig struct {
	Provider string `json:"provider"` // GitHub or gitlab or whatever you want
	Token    string `json:"token,omitempty"`
	Owner    string `json:"owner,omitempty"`
	Repo     string `json:"repo,omitempty"`
}

Jump to

Keyboard shortcuts

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