Documentation
¶
Index ¶
- Variables
- func DefaultConfigPath() string
- func ShouldIgnoreGetOrRefreshTokenError(err error) bool
- type BackendConfig
- type Config
- type ConfigManager
- func (cm *ConfigManager) AsMap(cfg *Config) (map[string]any, error)
- func (cm *ConfigManager) ConfigPath() string
- func (cm *ConfigManager) CreateDefaultConfig() error
- func (cm *ConfigManager) DeleteToken(org string) error
- func (cm *ConfigManager) Exists() (bool, error)
- func (cm *ConfigManager) GetOrRefreshToken(ctx context.Context, org string) (*auth.Token, error)
- func (cm *ConfigManager) GetToken(org string) (*auth.Token, error)
- func (cm *ConfigManager) Load() (*Config, error)
- func (cm *ConfigManager) LoadSkillsConfig() (*SkillsConfig, error)
- func (cm *ConfigManager) LoadWithDualOverrides(baseClientID, baseClientSecret, baseAPIURL, baseOrg string, ...) (*Config, *OrganizationConfig, *OrganizationConfig, error)
- func (cm *ConfigManager) LoadWithOverrides(clientID, clientSecret, apiURL, orgName string) (*Config, error)
- func (cm *ConfigManager) SaveSkillsConfig(skills *SkillsConfig) error
- func (cm *ConfigManager) StoreToken(org string, token *auth.Token) error
- func (cm *ConfigManager) Write(cfg *Config) error
- func (cm *ConfigManager) WriteBytes(data []byte) error
- func (cm *ConfigManager) WriteOrgIfMissing(org string, apiUrl string) (*Config, error)
- type OrganizationConfig
- type SkillsConfig
Constants ¶
This section is empty.
Variables ¶
var ( ErrGetOrRefreshToken = errors.New("failed to get new token or refresh existing one") ErrNoStoredToken = errors.New("no stored oauth token") ErrRefreshToken = errors.New("failed to refresh stored oauth token") )
var ErrOrgNotFound = errors.New("org not found in credentials")
ErrOrgNotFound is returned by GetToken when credentials exist on disk but no entry is present for the requested org. Callers can distinguish this from real I/O or parse failures using errors.Is.
Functions ¶
func DefaultConfigPath ¶
func DefaultConfigPath() string
DefaultConfigPath returns the default path to the configuration file.
func ShouldIgnoreGetOrRefreshTokenError ¶ added in v0.2.0
Types ¶
type BackendConfig ¶
BackendConfig represents configuration for the backend server (legacy, may not be used).
type Config ¶
type Config struct {
DefaultOrg string `yaml:"default_org"`
Organizations map[string]OrganizationConfig `yaml:"organizations"`
Backend BackendConfig `yaml:"backend"`
Skills SkillsConfig `yaml:"skills,omitempty"`
}
Config represents the main configuration structure.
func (*Config) GetOrgConfig ¶
func (c *Config) GetOrgConfig(orgName string) (*OrganizationConfig, error)
GetOrgConfig returns the configuration for a specific organization.
func (*Config) GetOrgOrDefault ¶ added in v0.1.17
type ConfigManager ¶
type ConfigManager struct {
// contains filtered or unexported fields
}
ConfigManager manages configuration loading with precedence: CLI flags > env vars > config file.
func NewConfigManager ¶
func NewConfigManager(configPath string) *ConfigManager
NewConfigManager creates a new ConfigManager.
func (*ConfigManager) AsMap ¶ added in v0.1.17
func (cm *ConfigManager) AsMap(cfg *Config) (map[string]any, error)
func (*ConfigManager) ConfigPath ¶
func (cm *ConfigManager) ConfigPath() string
ConfigPath returns the configuration file path.
func (*ConfigManager) CreateDefaultConfig ¶
func (cm *ConfigManager) CreateDefaultConfig() error
CreateDefaultConfig creates a default configuration file.
func (*ConfigManager) DeleteToken ¶ added in v0.1.17
func (cm *ConfigManager) DeleteToken(org string) error
func (*ConfigManager) Exists ¶ added in v0.1.17
func (cm *ConfigManager) Exists() (bool, error)
Exists returns whether the config exists or not
func (*ConfigManager) GetOrRefreshToken ¶ added in v0.2.0
GetOrRefreshToken returns the stored token for the org, silently refreshing it when it has expired and refresh metadata is available.
func (*ConfigManager) GetToken ¶ added in v0.1.17
func (cm *ConfigManager) GetToken(org string) (*auth.Token, error)
func (*ConfigManager) Load ¶
func (cm *ConfigManager) Load() (*Config, error)
Load loads configuration with precedence: env vars > config file > defaults.
func (*ConfigManager) LoadSkillsConfig ¶ added in v0.2.0
func (cm *ConfigManager) LoadSkillsConfig() (*SkillsConfig, error)
LoadSkillsConfig loads the skills section from the config file.
func (*ConfigManager) LoadWithDualOverrides ¶
func (cm *ConfigManager) LoadWithDualOverrides( baseClientID, baseClientSecret, baseAPIURL, baseOrg string, targetClientID, targetClientSecret, targetAPIURL, targetOrg string, ) (*Config, *OrganizationConfig, *OrganizationConfig, error)
LoadWithDualOverrides loads configuration with dual org support. Returns config, base org config, and target org config. Precedence: CLI flags > env vars > config file > defaults.
func (*ConfigManager) LoadWithOverrides ¶
func (cm *ConfigManager) LoadWithOverrides(clientID, clientSecret, apiURL, orgName string) (*Config, error)
LoadWithOverrides loads configuration with CLI flag overrides. Precedence: CLI flags > env vars > config file > defaults.
func (*ConfigManager) SaveSkillsConfig ¶ added in v0.2.0
func (cm *ConfigManager) SaveSkillsConfig(skills *SkillsConfig) error
SaveSkillsConfig persists the skills section into the config file, preserving all other fields.
func (*ConfigManager) StoreToken ¶ added in v0.1.17
func (cm *ConfigManager) StoreToken(org string, token *auth.Token) error
func (*ConfigManager) Write ¶ added in v0.1.17
func (cm *ConfigManager) Write(cfg *Config) error
func (*ConfigManager) WriteBytes ¶ added in v0.1.17
func (cm *ConfigManager) WriteBytes(data []byte) error
func (*ConfigManager) WriteOrgIfMissing ¶ added in v0.1.17
func (cm *ConfigManager) WriteOrgIfMissing(org string, apiUrl string) (*Config, error)
WriteOrgIfMissing adds the org to the config if its missing.
type OrganizationConfig ¶
type OrganizationConfig struct {
ClientID string `yaml:"client_id"`
ClientSecret string `yaml:"client_secret"`
APIURL string `yaml:"api_url"`
}
OrganizationConfig represents configuration for a Port organization.
type SkillsConfig ¶ added in v0.2.0
type SkillsConfig struct {
// Targets is the list of AI tool hook directories (e.g. ~/.cursor, ~/.claude).
Targets []string `yaml:"targets"`
// ProjectDirs is the accumulated list of project directories where
// 'port skills init' has been run. Project-scoped skills are written
// to every directory in this list on each sync.
ProjectDirs []string `yaml:"project_dirs,omitempty"`
SelectAll bool `yaml:"select_all"`
SelectAllGroups bool `yaml:"select_all_groups"`
SelectAllUngrouped bool `yaml:"select_all_ungrouped"`
SelectedGroups []string `yaml:"selected_groups"`
SelectedSkills []string `yaml:"selected_skills"`
LastSyncedAt string `yaml:"last_synced_at"`
}
SkillsConfig holds configuration for the port skills feature (hooks, selection, sync state).
func (*SkillsConfig) HasSelection ¶ added in v0.2.0
func (p *SkillsConfig) HasSelection() bool
HasSelection reports whether any skill selection has been configured.