适配gitea 取消gogs(没有对应接口支持)

This commit is contained in:
Hua
2025-04-02 14:28:56 +08:00
parent 7ec5abe67f
commit 8480656ca4
9 changed files with 297 additions and 379 deletions

@ -9,20 +9,43 @@ import (
"net/http"
)
type AuthConfig struct {
Token string
Username string
Password string
SudoUser string
TOTP string
UseBasicAuth bool
UseSudoHeader bool
UseSudoParam bool
UseTOTPHeader bool
}
type httpClient struct {
url string
token string
auth *AuthConfig
client *http.Client
}
func newHTTPClient(baseURL, token string) *httpClient {
func newHTTPClient(baseURL string, authConfig *AuthConfig) *httpClient {
return &httpClient{
url: baseURL,
token: token,
auth: authConfig,
client: &http.Client{},
}
}
func (c *httpClient) setAuthHeaders(req *http.Request) {
if c.auth == nil {
return
}
// 设置 Token 认证
if c.auth.Token != "" {
req.Header.Set("Authorization", "token "+c.auth.Token)
}
}
func (c *httpClient) get(path string, result interface{}) error {
url := fmt.Sprintf("%s%s", c.url, path)
log.Printf("发送 GET 请求: url=%s", url)
@ -34,9 +57,7 @@ func (c *httpClient) get(path string, result interface{}) error {
}
req.Header.Set("Content-Type", "application/json")
if c.token != "" {
req.Header.Set("Authorization", "token "+c.token)
}
c.setAuthHeaders(req)
resp, err := c.client.Do(req)
if err != nil {
@ -77,9 +98,7 @@ func (c *httpClient) post(path string, data interface{}) error {
}
req.Header.Set("Content-Type", "application/json")
if c.token != "" {
req.Header.Set("Authorization", "token "+c.token)
}
c.setAuthHeaders(req)
resp, err := c.client.Do(req)
if err != nil {
@ -113,6 +132,8 @@ func (c *httpClient) getWithHeaders(path string, result interface{}, headers map
req.Header.Set(key, value)
}
c.setAuthHeaders(req)
resp, err := c.client.Do(req)
if err != nil {
log.Printf("发送 GET 请求失败: url=%s, error=%v", url, err)
@ -156,6 +177,8 @@ func (c *httpClient) postWithHeaders(path string, data interface{}, headers map[
req.Header.Set(key, value)
}
c.setAuthHeaders(req)
resp, err := c.client.Do(req)
if err != nil {
log.Printf("发送 POST 请求失败: url=%s, error=%v", url, err)