Files
git-hook/config.go
T
2026-08-26 10:42:53 +08:00

35 lines
831 B
Go

package main
import (
"encoding/json"
"os"
"sync"
"time"
)
// Config 对应 config.json 结构
type Config struct {
SecretToken string `json:"secret_token"`
Projects map[string]map[string]string `json:"projects"`
DeviceKeys []string `json:"device_keys"`
}
var (
globalConfig Config
// lastExecMap 冷却去重状态,key: "repoName:ref", value: *debounceEntry
// 记录每个 key 上次实际执行时刻,冷却窗口内到达的 push 直接丢弃
lastExecMap sync.Map
// 防抖冷却时间限制:3 分钟
debounceDuration = 3 * time.Minute
// bark 推送消息
pushURL = "https://bark.maimaicuizhiji.top/push"
)
func loadConfig(path string) error {
file, err := os.ReadFile(path)
if err != nil {
return err
}
return json.Unmarshal(file, &globalConfig)
}