1
0
mirror of https://github.com/Luzifer/github2gitea.git synced 2024-09-19 00:12:59 +00:00
github2gitea/gitea.go
Knut Ahlers 494dbf16dd
Allow specifying multiple actions at once
in order to speed up the execution and to lower the need of Github
tokens. Instead of running the tool multiple times it can now be run
once while specifying more than one mapping using a mapping file.

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2019-08-04 14:34:54 +02:00

59 lines
1.5 KiB
Go

package main
import (
"net/url"
"github.com/google/go-github/github"
)
type createMigrationRequest struct {
AuthPassword string `json:"auth_password"`
AuthUsername string `json:"auth_username"`
CloneAddr string `json:"clone_addr"`
Description string `json:"description"`
Issues bool `json:"issues"`
//Labels bool `json:"labels"`
//Milestones bool `json:"milestones"`
Mirror bool `json:"mirror"`
Private bool `json:"private"`
PullRequests bool `json:"pull_requests"`
//Releases bool `json:"releases"`
RepoName string `json:"repo_name"`
UID int64 `json:"uid"`
Wiki bool `json:"wiki"`
}
func createMigrationRequestFromGithubRepo(gr *github.Repository, repoMapping *mapping) createMigrationRequest {
cmr := createMigrationRequest{
CloneAddr: strFromPtr(gr.CloneURL),
Description: strFromPtr(gr.Description),
Issues: boolFromPtr(gr.HasIssues),
Mirror: !cfg.NoMirror,
Private: boolFromPtr(gr.Private),
PullRequests: boolFromPtr(gr.HasIssues),
RepoName: strFromPtr(gr.Name),
UID: repoMapping.TargetUser,
Wiki: boolFromPtr(gr.HasWiki),
}
if boolFromPtr(gr.Private) {
uri, _ := url.Parse(strFromPtr(gr.CloneURL))
uri.User = url.UserPassword("api", cfg.GithubToken)
cmr.CloneAddr = uri.String()
}
return cmr
}
func boolFromPtr(in *bool) bool {
return in != nil && *in
}
func strFromPtr(in *string) string {
if in == nil {
return ""
}
return *in
}