1
0
Fork 0
mirror of https://github.com/Luzifer/github2gitea.git synced 2024-11-09 15:50:01 +00:00
github2gitea/gitea.go
Knut Ahlers 4158d83636
Add option to disable mirroring
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2019-07-27 20:25:39 +02:00

58 lines
1.4 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) 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: cfg.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
}