Hopefully support GH enterprise (#12863)
Signed-off-by: jolheiser <john.olheiser@gmail.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
2dbca92a0f
commit
ec6a35aeb1
|
@ -28,7 +28,7 @@ func TestGiteaUploadRepo(t *testing.T) {
|
||||||
user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
downloader = NewGithubDownloaderV3(context.Background(), "", "", "", "go-xorm", "builder")
|
downloader = NewGithubDownloaderV3(context.Background(), "https://github.com", "", "", "", "go-xorm", "builder")
|
||||||
repoName = "builder-" + time.Now().Format("2006-01-02-15-04-05")
|
repoName = "builder-" + time.Now().Format("2006-01-02-15-04-05")
|
||||||
uploader = NewGiteaLocalUploader(graceful.GetManager().HammerContext(), user, user.Name, repoName)
|
uploader = NewGiteaLocalUploader(graceful.GetManager().HammerContext(), user, user.Name, repoName)
|
||||||
)
|
)
|
||||||
|
|
|
@ -47,13 +47,14 @@ func (f *GithubDownloaderV3Factory) New(ctx context.Context, opts base.MigrateOp
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
baseURL := u.Scheme + "://" + u.Host
|
||||||
fields := strings.Split(u.Path, "/")
|
fields := strings.Split(u.Path, "/")
|
||||||
oldOwner := fields[1]
|
oldOwner := fields[1]
|
||||||
oldName := strings.TrimSuffix(fields[2], ".git")
|
oldName := strings.TrimSuffix(fields[2], ".git")
|
||||||
|
|
||||||
log.Trace("Create github downloader: %s/%s", oldOwner, oldName)
|
log.Trace("Create github downloader: %s/%s", oldOwner, oldName)
|
||||||
|
|
||||||
return NewGithubDownloaderV3(ctx, opts.AuthUsername, opts.AuthPassword, opts.AuthToken, oldOwner, oldName), nil
|
return NewGithubDownloaderV3(ctx, baseURL, opts.AuthUsername, opts.AuthPassword, opts.AuthToken, oldOwner, oldName), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GitServiceType returns the type of git service
|
// GitServiceType returns the type of git service
|
||||||
|
@ -74,7 +75,7 @@ type GithubDownloaderV3 struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewGithubDownloaderV3 creates a github Downloader via github v3 API
|
// NewGithubDownloaderV3 creates a github Downloader via github v3 API
|
||||||
func NewGithubDownloaderV3(ctx context.Context, userName, password, token, repoOwner, repoName string) *GithubDownloaderV3 {
|
func NewGithubDownloaderV3(ctx context.Context, baseURL, userName, password, token, repoOwner, repoName string) *GithubDownloaderV3 {
|
||||||
var downloader = GithubDownloaderV3{
|
var downloader = GithubDownloaderV3{
|
||||||
userName: userName,
|
userName: userName,
|
||||||
password: password,
|
password: password,
|
||||||
|
@ -98,6 +99,9 @@ func NewGithubDownloaderV3(ctx context.Context, userName, password, token, repoO
|
||||||
client = oauth2.NewClient(downloader.ctx, ts)
|
client = oauth2.NewClient(downloader.ctx, ts)
|
||||||
}
|
}
|
||||||
downloader.client = github.NewClient(client)
|
downloader.client = github.NewClient(client)
|
||||||
|
if baseURL != "https://github.com" {
|
||||||
|
downloader.client, _ = github.NewEnterpriseClient(baseURL, baseURL, client)
|
||||||
|
}
|
||||||
return &downloader
|
return &downloader
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ func assertLabelEqual(t *testing.T, name, color, description string, label *base
|
||||||
|
|
||||||
func TestGitHubDownloadRepo(t *testing.T) {
|
func TestGitHubDownloadRepo(t *testing.T) {
|
||||||
GithubLimitRateRemaining = 3 //Wait at 3 remaining since we could have 3 CI in //
|
GithubLimitRateRemaining = 3 //Wait at 3 remaining since we could have 3 CI in //
|
||||||
downloader := NewGithubDownloaderV3(context.Background(), "", "", os.Getenv("GITHUB_READ_TOKEN"), "go-gitea", "test_repo")
|
downloader := NewGithubDownloaderV3(context.Background(), "https://github.com", "", "", os.Getenv("GITHUB_READ_TOKEN"), "go-gitea", "test_repo")
|
||||||
err := downloader.RefreshRate()
|
err := downloader.RefreshRate()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue