|
- package repo_migrate
-
- import (
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/routers/response"
- "crypto/tls"
- "errors"
- "fmt"
- "github.com/go-resty/resty/v2"
- "strings"
- )
-
- var (
- restyClient *resty.Client
- )
-
- func getRestyClient() *resty.Client {
- if restyClient == nil {
- restyClient = resty.New()
- restyClient.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
- }
- return restyClient
- }
-
- func CommitFile(fileUrl string) (interface{}, error) {
- client := getRestyClient()
- var result response.AiforgeResponse
-
- _, err := client.R().
- SetResult(&result).
- Post(fmt.Sprintf("%s/api/repo/migrate/commit?file=%s", setting.RepoMigrateHost, fileUrl))
-
- if err != nil {
- return "", errors.New("service not available")
- }
-
- if result.Code > 0 {
- log.Error("commitFile failed(%d): %s", result.Code, result.Msg)
- return "", errors.New(result.Msg)
-
- }
- return result.Data, nil
- }
-
- func QueryFileStatus(md5 string) (interface{}, error) {
- client := getRestyClient()
- var result response.AiforgeResponse
-
- _, err := client.R().
- SetResult(&result).
- Get(fmt.Sprintf("%s/api/repo/task/query?md5=%s", setting.RepoMigrateHost, md5))
-
- if err != nil {
- return "", errors.New("service not available")
- }
-
- if result.Code > 0 {
- log.Error("QueryFileStatus failed(%d): %s", result.Code, result.Msg)
- return "", errors.New(result.Msg)
-
- }
- return result.Data, nil
- }
-
- func Auth(userName string) bool {
- if isWhiteListEffect() && isInWhiteList(userName) {
- return true
- }
-
- if !isWhiteListEffect() {
- return true
- }
-
- return false
- }
-
- func isWhiteListEffect() bool {
- return setting.IsRepoMigrateWhiteListEffect
- }
-
- func isInWhiteList(userName string) bool {
- for _, name := range getWhiteList() {
- if strings.ToUpper(name) == strings.ToUpper(userName) {
- return true
- }
- }
- return false
- }
-
- func getWhiteList() []string {
- return setting.RepoMigrateWhiteList
- }
|