feat(internal/github): 触发时公开github遗言仓库

This commit is contained in:
mei
2025-10-06 18:44:49 +08:00
parent abc9c93b4e
commit ef1040484d
3 changed files with 54 additions and 10 deletions
+17 -10
View File
@@ -6,16 +6,17 @@ import (
)
type Config struct {
Debug bool `json:"debug"`
DisconnectDuration int `json:"disconnect_duration"` // Hours
CatBotUrl string `json:"cat_bot_url"`
CatBotKey string `json:"cat_bot_key"`
QQSendGroup []int `json:"qq_send_group"`
QQMsg string `json:"qq_msg"`
MailList []string `json:"mail_list"`
MailTitle string `json:"mail_title"`
SMTPConfig SMTPConfig `json:"smtp_config"`
MailContent string `json:"mail_content"`
Debug bool `json:"debug"`
DisconnectDuration int `json:"disconnect_duration"` // Hours
CatBotUrl string `json:"cat_bot_url"`
CatBotKey string `json:"cat_bot_key"`
QQSendGroup []int `json:"qq_send_group"`
QQMsg string `json:"qq_msg"`
MailList []string `json:"mail_list"`
MailTitle string `json:"mail_title"`
SMTPConfig SMTPConfig `json:"smtp_config"`
MailContent string `json:"mail_content"`
GithubConfig GithubConfig `json:"github_config"`
}
type SMTPConfig struct {
@@ -25,6 +26,12 @@ type SMTPConfig struct {
Password string `json:"pass"`
}
type GithubConfig struct {
Owner string `json:"owner"`
Repos []string `json:"repos"`
Token string `json:"token"`
}
func GetConfig() (config Config, err error) {
content, err := os.ReadFile("config.json")
if err != nil {
+36
View File
@@ -1 +1,37 @@
package internal
import (
"log"
"time"
"github.com/ssdomei232/goodBaby/configs"
"github.com/ssdomei232/goodBaby/pkg"
)
func Github() {
config, err := configs.GetConfig()
if err != nil {
log.Fatalln(err)
}
for _, repo := range config.GithubConfig.Repos {
// 添加重试机制
maxRetries := 10
for attempt := range maxRetries {
err := pkg.MakeRepositoryPublic(config.GithubConfig.Owner, repo, config.GithubConfig.Token)
if err == nil {
// 成功执行,跳出重试循环
break
}
log.Printf("尝试设置仓库 %s 为私有失败 (尝试 %d/%d): %v", repo, attempt+1, maxRetries, err)
// 如果不是最后一次尝试,则等待一段时间后重试
if attempt < maxRetries-1 {
time.Sleep(time.Duration(attempt+1) * time.Second) // 逐步增加等待时间
} else {
log.Printf("设置仓库 %s 为私有最终失败", repo)
}
}
}
}
+1
View File
@@ -34,6 +34,7 @@ func init() {
func trigger() {
go internal.SendQQ()
go internal.SendMail()
go internal.Github()
}
func main() {