1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

WTF-400 GitLab extracted to new config format

This commit is contained in:
Chris Cummer 2019-04-14 19:39:04 -07:00
parent 6c22ad6d27
commit 50726b4f07
4 changed files with 45 additions and 21 deletions

View File

@ -220,7 +220,8 @@ func makeWidget(app *tview.Application, pages *tview.Pages, widgetName string) w
settings := github.NewSettingsFromYAML(wtf.Config)
widget = github.NewWidget(app, pages, settings)
case "gitlab":
widget = gitlab.NewWidget(app, pages)
settings := gitlab.NewSettingsFromYAML(wtf.Config)
widget = gitlab.NewWidget(app, pages, settings)
case "gitter":
widget = gitter.NewWidget(app, pages)
case "gspreadsheets":

View File

@ -21,10 +21,10 @@ func (widget *Widget) display() {
str = str + widget.displayStats(project)
str = str + "\n"
str = str + " [red]Open Approval Requests[white]\n"
str = str + widget.displayMyApprovalRequests(project, wtf.Config.UString("wtf.mods.gitlab.username"))
str = str + widget.displayMyApprovalRequests(project, widget.settings.username)
str = str + "\n"
str = str + " [red]My Merge Requests[white]\n"
str = str + widget.displayMyMergeRequests(project, wtf.Config.UString("wtf.mods.gitlab.username"))
str = str + widget.displayMyMergeRequests(project, widget.settings.username)
widget.View.SetText(str)
}

View File

@ -0,0 +1,32 @@
package gitlab
import (
"os"
"github.com/olebedev/config"
"github.com/wtfutil/wtf/cfg"
)
type Settings struct {
common *cfg.Common
apiKey string
domain string
projects map[string]interface{}
username string
}
func NewSettingsFromYAML(ymlConfig *config.Config) *Settings {
localConfig, _ := ymlConfig.Get("wtf.mods.gitlab")
settings := Settings{
common: cfg.NewCommonSettingsFromYAML(ymlConfig),
apiKey: localConfig.UString("apiKey", os.Getenv("WTF_GITLAB_TOKEN")),
domain: localConfig.UString("domain"),
projects: localConfig.UMap("projects"),
username: localConfig.UString("username"),
}
return &settings
}

View File

@ -1,8 +1,6 @@
package gitlab
import (
"os"
"github.com/gdamore/tcell"
"github.com/rivo/tview"
"github.com/wtfutil/wtf/wtf"
@ -25,15 +23,15 @@ type Widget struct {
wtf.HelpfulWidget
wtf.TextWidget
gitlab *glb.Client
GitlabProjects []*GitlabProject
Idx int
gitlab *glb.Client
settings *Settings
}
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
baseURL := wtf.Config.UString("wtf.mods.gitlab.domain")
gitlab := glb.NewClient(nil, apiKey())
func NewWidget(app *tview.Application, pages *tview.Pages, settings *Settings) *Widget {
baseURL := settings.domain
gitlab := glb.NewClient(nil, settings.apiKey)
if baseURL != "" {
gitlab.SetBaseURL(baseURL)
@ -43,12 +41,12 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
TextWidget: wtf.NewTextWidget(app, "Gitlab", "gitlab", true),
gitlab: gitlab,
Idx: 0,
Idx: 0,
gitlab: gitlab,
settings: settings,
}
widget.GitlabProjects = widget.buildProjectCollection(wtf.Config.UMap("wtf.mods.gitlab.projects"))
widget.GitlabProjects = widget.buildProjectCollection(settings.projects)
widget.HelpfulWidget.SetView(widget.View)
widget.View.SetInputCapture(widget.keyboardIntercept)
@ -86,13 +84,6 @@ func (widget *Widget) Prev() {
/* -------------------- Unexported Functions -------------------- */
func apiKey() string {
return wtf.Config.UString(
"wtf.mods.gitlab.apiKey",
os.Getenv("WTF_GITLAB_TOKEN"),
)
}
func (widget *Widget) buildProjectCollection(projectData map[string]interface{}) []*GitlabProject {
gitlabProjects := []*GitlabProject{}