调整 Grafana Folder 名称
This commit is contained in:
parent
14584ac2d6
commit
7b43576e0e
|
|
@ -9,17 +9,14 @@
|
|||
package network
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"repostats/utils"
|
||||
"time"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
)
|
||||
|
||||
const (
|
||||
CONTENT_TYPE = "application/json"
|
||||
USER_AGENT = "RepoStats https://gitee.com/barat | https://github.com/barats"
|
||||
)
|
||||
|
||||
type OauthToken struct {
|
||||
AccessToken string `json:"access_token"`
|
||||
TokenType string `json:"token_type"`
|
||||
|
|
@ -49,8 +46,8 @@ func NewNetworkClient(token string) *resty.Client {
|
|||
SetAuthToken(token)
|
||||
|
||||
client.SetHeaders(map[string]string{
|
||||
"Content-Type": CONTENT_TYPE,
|
||||
"User-Agent": USER_AGENT,
|
||||
"Content-Type": "application/json",
|
||||
"User-Agent": fmt.Sprintf("RepoStats/%s build %s", utils.Version, utils.Build),
|
||||
})
|
||||
|
||||
client.OnError(func(r *resty.Request, err error) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
gitee_model "repostats/model/gitee"
|
||||
"repostats/utils"
|
||||
|
|
@ -22,12 +23,12 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
GRAFANA_API_TOKEN = "grafana_api_token.json"
|
||||
GRAFANA_DATASOURCE = "grafana_datasource.json"
|
||||
GRAFANA_FOLDER = "grafana_folder.json"
|
||||
REPOSTATS_FOLDER_NAME = "RepoStats"
|
||||
REPOSTATS_HOMEDASHBOARD_NAME = "Overview"
|
||||
REPOSTATS_HOMEDASHBOARD_FILE = "grafana_home_dashboard.json"
|
||||
GRAFANA_API_TOKEN = "grafana_api_token.json"
|
||||
GRAFANA_DATASOURCE = "grafana_datasource.json"
|
||||
GRAFANA_FOLDER = "grafana_folder.json"
|
||||
REPOSTATS_GITEE_FOLDER_NAME = "Gitee"
|
||||
// REPOSTATS_HOMEDASHBOARD_NAME = "Overview"
|
||||
// REPOSTATS_HOMEDASHBOARD_FILE = "grafana_home_dashboard.json"
|
||||
)
|
||||
|
||||
//go:embed templates/*.tmpl
|
||||
|
|
@ -157,11 +158,11 @@ func CreateDatasource(token GrafanaToken, dbConfig utils.DatabaseConfigInfo) err
|
|||
"database": "%s",
|
||||
"basicAuth": true,
|
||||
"basicAuthUser": "%s",
|
||||
"readOnly": true,
|
||||
"readOnly": true,
|
||||
"withCredentials": false,
|
||||
"isDefault": true,
|
||||
"isDefault": true,
|
||||
"secureJsonData": {
|
||||
"password": "%s",
|
||||
"password": "%s",
|
||||
"basicAuthPassword": "%s"
|
||||
},
|
||||
"jsonData": {
|
||||
|
|
@ -200,7 +201,7 @@ func RetrieveGrafanaDatasource() (GrafanaDatasource, error) {
|
|||
return datasource, json.Unmarshal(data, &datasource)
|
||||
}
|
||||
|
||||
func CreateRepoDashboard(token GrafanaToken, folder GrafanaFolder, datasource GrafanaDatasource, repo gitee_model.Repository) error {
|
||||
func CreateGiteeRepoDashboard(token GrafanaToken, folder GrafanaFolder, datasource GrafanaDatasource, repo gitee_model.Repository) error {
|
||||
data := map[string]string{
|
||||
"datasource": datasource.UID,
|
||||
"folder": folder.UID,
|
||||
|
|
@ -212,7 +213,7 @@ func CreateRepoDashboard(token GrafanaToken, folder GrafanaFolder, datasource Gr
|
|||
}
|
||||
|
||||
var tp bytes.Buffer
|
||||
tmpl, err := template.ParseFS(grafanaFS, "templates/repo-dashboard.tmpl")
|
||||
tmpl, err := template.ParseFS(grafanaFS, "templates/gitee-repo-dashboard.tmpl")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -227,16 +228,16 @@ func CreateRepoDashboard(token GrafanaToken, folder GrafanaFolder, datasource Gr
|
|||
}
|
||||
|
||||
if code != http.StatusOK {
|
||||
return fmt.Errorf("grafana home dashboard creation failed. status code: %d , response : %s", code, rs)
|
||||
return fmt.Errorf("grafana gitee remo dashboard creation failed. status code: %d , response : %s", code, rs)
|
||||
}
|
||||
|
||||
var rawMap map[string]json.RawMessage
|
||||
json.Unmarshal([]byte(rs), &rawMap)
|
||||
|
||||
return utils.WriteRepoStatsFile(fmt.Sprintf("gitee-repo-%d.json", repo.ID), []byte(rawMap["dashboard"]))
|
||||
// var rawMap map[string]json.RawMessage
|
||||
// json.Unmarshal([]byte(rs), &rawMap)
|
||||
// return utils.WriteRepoStatsFile(fmt.Sprintf("gitee-repo-%d.json", repo.ID), []byte(rawMap["dashboard"]))
|
||||
return nil
|
||||
}
|
||||
|
||||
func CreateHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasource GrafanaDatasource) error {
|
||||
func CreateGiteeHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasource GrafanaDatasource) error {
|
||||
data := map[string]string{
|
||||
"datasource": datasource.UID,
|
||||
"folder": folder.UID,
|
||||
|
|
@ -244,7 +245,7 @@ func CreateHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasource Gr
|
|||
}
|
||||
|
||||
var tp bytes.Buffer
|
||||
tmpl, err := template.ParseFS(grafanaFS, "templates/home-dashboard.tmpl")
|
||||
tmpl, err := template.ParseFS(grafanaFS, "templates/gitee-home-dashboard.tmpl")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -253,6 +254,8 @@ func CreateHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasource Gr
|
|||
return err
|
||||
}
|
||||
|
||||
log.Println(tp.String())
|
||||
|
||||
code, rs, err := HttpPost(token.Key, fmt.Sprintf("http://%s:%s/api/dashboards/db", token.Host, token.Port), nil, tp.String())
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -262,17 +265,17 @@ func CreateHomeDashboard(token GrafanaToken, folder GrafanaFolder, datasource Gr
|
|||
return fmt.Errorf("grafana home dashboard creation failed. status code: %d , response : %s", code, rs)
|
||||
}
|
||||
|
||||
var rawMap map[string]json.RawMessage
|
||||
json.Unmarshal([]byte(rs), &rawMap)
|
||||
|
||||
return utils.WriteRepoStatsFile(REPOSTATS_HOMEDASHBOARD_FILE, []byte(rawMap["dashboard"]))
|
||||
// var rawMap map[string]json.RawMessage
|
||||
// json.Unmarshal([]byte(rs), &rawMap)
|
||||
// return utils.WriteRepoStatsFile(REPOSTATS_HOMEDASHBOARD_FILE, []byte(rawMap["dashboard"]))
|
||||
return nil
|
||||
}
|
||||
|
||||
//创建 RepoStats 使用的 Folder
|
||||
//
|
||||
func CreateRepostatsFolder(token GrafanaToken) error {
|
||||
func CreateGiteeRepostatsFolder(token GrafanaToken) error {
|
||||
url := fmt.Sprintf("http://%s:%s/api/folders", token.Host, token.Port)
|
||||
data := fmt.Sprintf(`{"title":"%s"}`, REPOSTATS_FOLDER_NAME)
|
||||
data := fmt.Sprintf(`{"title":"%s"}`, REPOSTATS_GITEE_FOLDER_NAME)
|
||||
code, rs, err := HttpPost(token.Key, url, nil, data)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -286,7 +289,7 @@ func CreateRepostatsFolder(token GrafanaToken) error {
|
|||
}
|
||||
|
||||
// 获取本地存储的 Folder 信息
|
||||
func RetrieveRepostatsFolder() (GrafanaFolder, error) {
|
||||
func RetrieveGiteeRepostatsFolder() (GrafanaFolder, error) {
|
||||
var folder GrafanaFolder
|
||||
data, _ := utils.ReadRepoStatsFile(GRAFANA_FOLDER)
|
||||
return folder, json.Unmarshal(data, &folder)
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ func TestCreateRepostatsFolder(t *testing.T) {
|
|||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := CreateRepostatsFolder(tt.args.token); (err != nil) != tt.wantErr {
|
||||
if err := CreateGiteeRepostatsFolder(tt.args.token); (err != nil) != tt.wantErr {
|
||||
t.Errorf("CreateRepostatsFolder() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
|
|
@ -80,7 +80,7 @@ func TestCreateHomeDashboard(t *testing.T) {
|
|||
datasource, err := RetrieveGrafanaDatasource()
|
||||
utils.ExitOnError(err)
|
||||
|
||||
folder, err := RetrieveRepostatsFolder()
|
||||
folder, err := RetrieveGiteeRepostatsFolder()
|
||||
utils.ExitOnError(err)
|
||||
|
||||
type args struct {
|
||||
|
|
@ -97,7 +97,7 @@ func TestCreateHomeDashboard(t *testing.T) {
|
|||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := CreateHomeDashboard(tt.args.token, tt.args.folder, tt.args.datasource); (err != nil) != tt.wantErr {
|
||||
if err := CreateGiteeHomeDashboard(tt.args.token, tt.args.folder, tt.args.datasource); (err != nil) != tt.wantErr {
|
||||
t.Errorf("CreateHomeDashboard() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
|
|
@ -115,11 +115,11 @@ func TestCreateRepoDashboard(t *testing.T) {
|
|||
datasource, err := RetrieveGrafanaDatasource()
|
||||
utils.ExitOnError(err)
|
||||
|
||||
folder, err := RetrieveRepostatsFolder()
|
||||
folder, err := RetrieveGiteeRepostatsFolder()
|
||||
utils.ExitOnError(err)
|
||||
|
||||
// repos, err := GetGiteeUserRepos("barat")
|
||||
repos, err := GetGiteeOrgRepos("openharmony")
|
||||
repos, err := GetGiteeUserRepos("barat")
|
||||
// repos, err := GetGiteeOrgRepos("openharmony")
|
||||
utils.ExitOnError(err)
|
||||
|
||||
type args struct {
|
||||
|
|
@ -142,7 +142,7 @@ func TestCreateRepoDashboard(t *testing.T) {
|
|||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := CreateRepoDashboard(tt.args.token, tt.args.folder, tt.args.datasource, tt.args.repo); (err != nil) != tt.wantErr {
|
||||
if err := CreateGiteeRepoDashboard(tt.args.token, tt.args.folder, tt.args.datasource, tt.args.repo); (err != nil) != tt.wantErr {
|
||||
t.Errorf("CreateRepoDashboard() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{{define "home-dashboard.tmpl"}}
|
||||
{{define "gitee-home-dashboard.tmpl"}}
|
||||
{
|
||||
"message": "Home Dashboard Update at {{.time}}",
|
||||
"dashboard": {
|
||||
"title": "RepoStats Overview",
|
||||
"tags": [ "RepoStats" ],
|
||||
"title": "Gitee Overview",
|
||||
"tags": ["RepoStats","Gitee"],
|
||||
"timezone": "browser",
|
||||
"refresh": "2h",
|
||||
"time": {
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
{{define "repo-dashboard.tmpl"}}
|
||||
{{define "gitee-repo-dashboard.tmpl"}}
|
||||
{
|
||||
"message": "Repo Dashboard Update at {{.time}}",
|
||||
"dashboard": {
|
||||
"title": "{{.repo_human_name}}",
|
||||
"tags": [ "RepoStats","Gitee","{{.repo_path}}","{{.repo_owner}}"],
|
||||
"tags": ["RepoStats","Gitee","{{.repo_path}}","{{.repo_owner}}"],
|
||||
"timezone": "browser",
|
||||
"refresh": "2h",
|
||||
"time": {
|
||||
|
|
@ -26,9 +26,6 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
Version = "1.0"
|
||||
Build = "2204111911"
|
||||
|
||||
//go:embed assets/* templates/*
|
||||
FS embed.FS
|
||||
|
||||
|
|
@ -39,8 +36,8 @@ func main() {
|
|||
|
||||
flag.StringVar(&cmdConfig, "c", "repostats.ini", "config file path")
|
||||
flag.Usage = func() {
|
||||
fmt.Fprintf(os.Stdout, `RepoStats version:%s build %s
|
||||
Usage: repostats [-c config_file_path]`, Version, Build)
|
||||
fmt.Fprintf(os.Stdout, `RepoStats v:%s build %s
|
||||
Usage: repostats [-c config_file_path]`, utils.Version, utils.Build)
|
||||
flag.PrintDefaults()
|
||||
}
|
||||
|
||||
|
|
@ -57,7 +54,7 @@ func main() {
|
|||
|
||||
initRouter(router)
|
||||
|
||||
log.Println(fmt.Sprintf("[RepoStats v%s build:%s] starts at http://localhost:%d", Version, Build, utils.RepoStatsConfig.AdminPort))
|
||||
log.Println(fmt.Sprintf("[RepoStats v%s build:%s] starts at http://localhost:%d", utils.Version, utils.Build, utils.RepoStatsConfig.AdminPort))
|
||||
router.Run(fmt.Sprintf("localhost:%d", utils.RepoStatsConfig.AdminPort))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
Version = "1.0"
|
||||
Build = "2204111911"
|
||||
)
|
||||
|
||||
func ExitOnError(err error) {
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue