适配gitea 取消gogs(没有对应接口支持)
This commit is contained in:
config
handlers
services/platforms
static
utils
@ -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)
|
||||
|
Reference in New Issue
Block a user