#8 implement interface Source and methods for gitea without Update #9

Merged
vtolstov merged 27 commits from kgorbunov/pkgdash:master into master 2024-03-24 20:52:34 +03:00
2 changed files with 22 additions and 16 deletions
Showing only changes of commit f9fe7e183e - Show all commits

View File

@ -204,6 +204,7 @@ func main() {
if err != nil { if err != nil {
logger.Fatalf(ctx, "failed to create pr: %v", err) logger.Fatalf(ctx, "failed to create pr: %v", err)
} }
logger.Infof(ctx, "PR create for %s - %s", pathMod, mod.Version)
} }
} }

View File

@ -99,7 +99,7 @@ func (g *Gitea) RequestOpen(ctx context.Context, branch string, path string, mod
if err != nil { if err != nil {
break break
} }
if ref.Name().String() == branch { //todo вот тут возможно нужно переделать if strings.Contains(ref.Name().String(), branch) { //todo вот тут возможно нужно переделать
headRef = ref headRef = ref
break break
} }
@ -131,20 +131,25 @@ func (g *Gitea) RequestOpen(ctx context.Context, branch string, path string, mod
} }
buf, _ = io.ReadAll(rsp.Body) buf, _ = io.ReadAll(rsp.Body)
if rsp.StatusCode != http.StatusOK {
switch rsp.StatusCode {
case http.StatusOK:
if err = json.Unmarshal(buf, &pulls); err != nil {
logger.Fatalf(ctx, "failed to decode response %s err: %v", buf, err)
} // записываем ответ от гита по пулл реквестам, видимо существующим
// перебираем наши модификации и если они уже есть в гите удаляем их из mods
for _, pull := range pulls {
if strings.Contains(pull.Title, path) && pull.Base.Ref == branch {
logger.Infof(ctx, "skip %s as pr already exists %s", path, pull.URL)
return ErrPRExist
} // хотим проверить есть ли пулл реквест для этой ветки, если есть то выходим
}
case http.StatusNotFound:
logger.Infof(ctx, "PL is not exist for %s", g.Repository)
default:
return fmt.Errorf("unknown error: %s", buf) return fmt.Errorf("unknown error: %s", buf)
}
if err = json.Unmarshal(buf, &pulls); err != nil {
logger.Fatalf(ctx, "failed to decode response %s err: %v", buf, err)
} // записываем ответ от гита по пулл реквестам, видимо существующим
// перебираем наши модификации и если они уже есть в гите удаляем их из mods
for _, pull := range pulls {
if strings.Contains(pull.Title, path) && pull.Base.Ref == branch {
logger.Infof(ctx, "skip %s as pr already exists %s", path, pull.URL)
return ErrPRExist
} // хотим проверить есть ли пулл реквест для этой ветки, если есть то выходим
} }
logger.Infof(ctx, "update %s from %s to %s", path, mod.Module.Version, mod.Version) logger.Infof(ctx, "update %s from %s to %s", path, mod.Module.Version, mod.Version)
@ -226,7 +231,7 @@ func (g *Gitea) RequestOpen(ctx context.Context, branch string, path string, mod
} }
*/ */
refspec := gitconfig.RefSpec(fmt.Sprintf("+refs/heads/pkgdash/go_modules/%s-%s:refs/heads/pkgdash/go_modules/%s-%s", path, mod.Version, path, mod.Module.Version)) //todo как будто нужно переделать refspec := gitconfig.RefSpec(fmt.Sprintf("+refs/heads/pkgdash/go_modules/%s-%s:refs/heads/pkgdash/go_modules/%s-%s", path, mod.Version, path, mod.Version)) //todo как будто нужно переделать
logger.Infof(ctx, "try to push refspec %s", refspec) logger.Infof(ctx, "try to push refspec %s", refspec)
@ -252,9 +257,9 @@ func (g *Gitea) RequestOpen(ctx context.Context, branch string, path string, mod
} }
body := map[string]string{ body := map[string]string{
"base": branch, "base": "refs/heads/develop",
"body": wBody.String(), "body": wBody.String(),
"head": fmt.Sprintf("pkgdash-1/go_modules/%s-%s", path, mod.Version), "head": fmt.Sprintf("pkgdash/go_modules/%s-%s", path, mod.Version),
"title": wTitle.String(), "title": wTitle.String(),
} }
logger.Infof(ctx, "raw body: %#+v", body) logger.Infof(ctx, "raw body: %#+v", body)