feat: pass gcom sso_api_token to repo created from install command (#98973)

* feat: pass gcom sso_api_token to repo created from install command

* fix

* fix: extract gcom section to a func

* Update pkg/cmd/grafana-cli/utils/command_line.go

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

* fix: only set gcom token when the request is to GCOM

---------

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
This commit is contained in:
Syerikjan Kh
2025-01-15 08:15:18 -05:00
committed by GitHub
parent 79fc26ea87
commit dfe0712955
8 changed files with 88 additions and 22 deletions
+21 -6
View File
@@ -26,6 +26,7 @@ type CommandLine interface {
PluginDirectory() string
PluginRepoURL() string
PluginURL() string
GcomToken() string
}
type ApiClient interface {
@@ -75,12 +76,7 @@ func (c *ContextCommandLine) PluginRepoURL() string {
// if --config flag is set, try to get the GrafanaComAPIURL setting
if c.ConfigFile() != "" {
configOptions := strings.Split(c.String("configOverrides"), " ")
cfg, err := setting.NewCfgFromArgs(setting.CommandLineArgs{
Config: c.ConfigFile(),
HomePath: c.HomePath(),
Args: append(configOptions, c.Args().Slice()...),
})
cfg, err := c.Config()
if err != nil {
logger.Debug("Could not parse config file", err)
@@ -92,6 +88,25 @@ func (c *ContextCommandLine) PluginRepoURL() string {
return c.String("repo")
}
func (c *ContextCommandLine) Config() (*setting.Cfg, error) {
configOptions := strings.Split(c.String("configOverrides"), " ")
return setting.NewCfgFromArgs(setting.CommandLineArgs{
Config: c.ConfigFile(),
HomePath: c.HomePath(),
Args: append(configOptions, c.Args().Slice()...),
})
}
func (c *ContextCommandLine) GcomToken() string {
cfg, err := c.Config()
if err != nil {
logger.Debug("Could not parse config file", err)
return ""
}
return cfg.GrafanaComSSOAPIToken
}
func (c *ContextCommandLine) PluginURL() string {
return c.String("pluginUrl")
}
@@ -146,6 +146,19 @@ func (_m *MockCommandLine) PluginURL() string {
return r0
}
func (_m *MockCommandLine) GcomToken() string {
ret := _m.Called()
var r0 string
if rf, ok := ret.Get(0).(func() string); ok {
r0 = rf()
} else {
r0 = ret.Get(0).(string)
}
return r0
}
// ShowHelp provides a mock function with given fields:
func (_m *MockCommandLine) ShowHelp() error {
ret := _m.Called()