6 Star 0 Fork 21

openEuler/sync-bot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.go 1.94 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"flag"
"net/http"
"os"
"strconv"
"sync-bot/git"
"sync-bot/gitee"
"sync-bot/hook"
"sync-bot/secret"
"github.com/emicklei/go-restful/v3"
"github.com/sirupsen/logrus"
)
func init() {
logrus.SetLevel(logrus.DebugLevel)
logrus.SetReportCaller(true)
logrus.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
FullTimestamp: true,
})
}
type options struct {
//dryRun bool //
giteeToken string //
port int //
webhookSecret string //
}
func (o *options) Validate() error {
return nil
}
func gatherOptions(fs *flag.FlagSet, args ...string) options {
var o options
//fs.BoolVar(&o.dryRun, "dry-run", true, "Dry run for testing. Uses API tokens but does not mutate.")
fs.StringVar(&o.giteeToken, "gitee-token", "token.conf", "Path to the file containing the Gitee token.")
fs.IntVar(&o.port, "port", 8765, "Port to listen on.")
fs.StringVar(&o.webhookSecret, "webhook-secret", "secret.conf", "Path to the file containing the Gitee Webhook secret.")
_ = fs.Parse(args)
return o
}
func main() {
o := gatherOptions(flag.NewFlagSet(os.Args[0], flag.ExitOnError), os.Args[1:]...)
if err := o.Validate(); err != nil {
logrus.WithError(err).Fatal("Invalid options")
}
err := secret.LoadSecrets([]string{o.giteeToken, o.webhookSecret})
if err != nil {
logrus.WithError(err).Fatal("Load secret failed.")
}
gitClient, err := git.NewClient()
if err != nil {
logrus.WithError(err).Fatalf("New git client failed: %v", err)
}
// TODO: user must be configurable
gitClient.SetCredentials("openeuler-sync-bot", secret.GetGenerator(o.giteeToken))
server := hook.Server{
GitClient: gitClient,
GiteeClient: gitee.NewClient(secret.GetGenerator(o.giteeToken)),
Secret: secret.GetGenerator(o.webhookSecret),
}
restful.Add(server.WebService())
port := ":" + strconv.Itoa(o.port)
logrus.WithFields(logrus.Fields{
"Option": o,
}).Infoln("Listen...")
logrus.Fatal(http.ListenAndServe(port, nil))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openeuler/sync-bot.git
git@gitee.com:openeuler/sync-bot.git
openeuler
sync-bot
sync-bot
master

搜索帮助