backup issues from github (#185)

* backup issues from github

* gitlab issues

* added gitea

* added gogs

* added onedev

* updated examples

* added more documentation
This commit is contained in:
Andreas Wachter 2023-12-01 07:58:53 +01:00 committed by GitHub
parent a7f72fc9ce
commit 52a834b42b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 209 additions and 8 deletions

View file

@ -1,6 +1,7 @@
package gogs
import (
"strconv"
"time"
"github.com/cooperspencer/gickup/logger"
@ -194,6 +195,7 @@ func Get(conf *types.Conf) ([]types.Repo, bool) {
Hoster: types.GetHost(repo.URL),
Description: r.Description,
Private: r.Private,
Issues: GetIssues(r, client, repo),
})
if repo.Wiki {
repos = append(repos, types.Repo{
@ -229,6 +231,7 @@ func Get(conf *types.Conf) ([]types.Repo, bool) {
Hoster: types.GetHost(repo.URL),
Description: r.Description,
Private: r.Private,
Issues: GetIssues(r, client, repo),
})
if repo.Wiki {
repos = append(repos, types.Repo{
@ -319,6 +322,7 @@ func Get(conf *types.Conf) ([]types.Repo, bool) {
Hoster: types.GetHost(repo.URL),
Description: r.Description,
Private: r.Private,
Issues: GetIssues(r, client, repo),
})
if repo.Wiki {
repos = append(repos, types.Repo{
@ -354,6 +358,7 @@ func Get(conf *types.Conf) ([]types.Repo, bool) {
Hoster: types.GetHost(repo.URL),
Description: r.Description,
Private: r.Private,
Issues: GetIssues(r, client, repo),
})
if repo.Wiki {
@ -376,3 +381,27 @@ func Get(conf *types.Conf) ([]types.Repo, bool) {
return repos, ran
}
// GetIssues get issues
func GetIssues(repo *gogs.Repository, client *gogs.Client, conf types.GenRepo) map[string]interface{} {
issues := map[string]interface{}{}
if conf.Issues {
listOptions := gogs.ListIssueOption{State: "all"}
for {
i, err := client.ListRepoIssues(repo.Owner.UserName, repo.Name, listOptions)
if err != nil {
sub.Error().Err(err).Str("repo", repo.Name).Msg("can't fetch issues")
} else {
if len(i) > 0 {
for _, issue := range i {
issues[strconv.Itoa(int(issue.Index))] = issue
}
} else {
break
}
listOptions.Page++
}
}
}
return issues
}