mirror of
https://github.com/gogs/gogs.git
synced 2026-03-06 20:21:00 +01:00
metrics: add initial Prometheus support (#4141)
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -5,13 +5,16 @@
|
||||
package context
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
|
||||
"github.com/go-macaron/csrf"
|
||||
"gopkg.in/macaron.v1"
|
||||
|
||||
"github.com/gogs/gogs/pkg/auth"
|
||||
"github.com/gogs/gogs/pkg/setting"
|
||||
"github.com/gogs/gogs/pkg/tool"
|
||||
)
|
||||
|
||||
type ToggleOptions struct {
|
||||
@@ -92,3 +95,18 @@ func Toggle(options *ToggleOptions) macaron.Handler {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// RequireBasicAuth verifies HTTP Basic Authentication header with given credentials
|
||||
func (c *Context) RequireBasicAuth(username, password string) {
|
||||
fields := strings.Fields(c.Req.Header.Get("Authorization"))
|
||||
if len(fields) != 2 || fields[0] != "Basic" {
|
||||
c.Status(http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
|
||||
uname, passwd, _ := tool.BasicAuthDecode(fields[1])
|
||||
if uname != username || passwd != password {
|
||||
c.Status(http.StatusForbidden)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,12 +188,12 @@ var (
|
||||
}
|
||||
|
||||
// Picture settings
|
||||
AvatarUploadPath string
|
||||
RepositoryAvatarUploadPath string
|
||||
GravatarSource string
|
||||
DisableGravatar bool
|
||||
EnableFederatedAvatar bool
|
||||
LibravatarService *libravatar.Libravatar
|
||||
AvatarUploadPath string
|
||||
RepositoryAvatarUploadPath string
|
||||
GravatarSource string
|
||||
DisableGravatar bool
|
||||
EnableFederatedAvatar bool
|
||||
LibravatarService *libravatar.Libravatar
|
||||
|
||||
// Log settings
|
||||
LogRootPath string
|
||||
@@ -294,6 +294,14 @@ var (
|
||||
} `ini:"ui.user"`
|
||||
}
|
||||
|
||||
// Prometheus settings
|
||||
Prometheus struct {
|
||||
Enabled bool
|
||||
EnableBasicAuth bool
|
||||
BasicAuthUsername string
|
||||
BasicAuthPassword string
|
||||
}
|
||||
|
||||
// I18n settings
|
||||
Langs []string
|
||||
Names []string
|
||||
@@ -652,27 +660,29 @@ func NewContext() {
|
||||
}
|
||||
|
||||
if err = Cfg.Section("http").MapTo(&HTTP); err != nil {
|
||||
log.Fatal(2, "Fail to map HTTP settings: %v", err)
|
||||
log.Fatal(2, "Failed to map HTTP settings: %v", err)
|
||||
} else if err = Cfg.Section("webhook").MapTo(&Webhook); err != nil {
|
||||
log.Fatal(2, "Fail to map Webhook settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Webhook settings: %v", err)
|
||||
} else if err = Cfg.Section("release.attachment").MapTo(&Release.Attachment); err != nil {
|
||||
log.Fatal(2, "Fail to map Release.Attachment settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Release.Attachment settings: %v", err)
|
||||
} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
|
||||
log.Fatal(2, "Fail to map Markdown settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Markdown settings: %v", err)
|
||||
} else if err = Cfg.Section("smartypants").MapTo(&Smartypants); err != nil {
|
||||
log.Fatal(2, "Fail to map Smartypants settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Smartypants settings: %v", err)
|
||||
} else if err = Cfg.Section("admin").MapTo(&Admin); err != nil {
|
||||
log.Fatal(2, "Fail to map Admin settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Admin settings: %v", err)
|
||||
} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {
|
||||
log.Fatal(2, "Fail to map Cron settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Cron settings: %v", err)
|
||||
} else if err = Cfg.Section("git").MapTo(&Git); err != nil {
|
||||
log.Fatal(2, "Fail to map Git settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Git settings: %v", err)
|
||||
} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil {
|
||||
log.Fatal(2, "Fail to map Mirror settings: %v", err)
|
||||
log.Fatal(2, "Failed to map Mirror settings: %v", err)
|
||||
} else if err = Cfg.Section("api").MapTo(&API); err != nil {
|
||||
log.Fatal(2, "Fail to map API settings: %v", err)
|
||||
log.Fatal(2, "Failed to map API settings: %v", err)
|
||||
} else if err = Cfg.Section("ui").MapTo(&UI); err != nil {
|
||||
log.Fatal(2, "Fail to map UI settings: %v", err)
|
||||
log.Fatal(2, "Failed to map UI settings: %v", err)
|
||||
} else if err = Cfg.Section("prometheus").MapTo(&Prometheus); err != nil {
|
||||
log.Fatal(2, "Failed to map Prometheus settings: %v", err)
|
||||
}
|
||||
|
||||
if Mirror.DefaultInterval <= 0 {
|
||||
|
||||
Reference in New Issue
Block a user