Add gogs import org/repo support to gitness (#735)

pull/3423/merge
Dan Wilson 2023-10-27 14:04:44 +00:00 committed by Harness
parent 66416c55a6
commit fb892a8ca8
2 changed files with 27 additions and 3 deletions

View File

@ -32,6 +32,7 @@ import (
"github.com/drone/go-scm/scm/driver/gitea"
"github.com/drone/go-scm/scm/driver/github"
"github.com/drone/go-scm/scm/driver/gitlab"
"github.com/drone/go-scm/scm/driver/gogs"
"github.com/drone/go-scm/scm/driver/stash"
"github.com/drone/go-scm/scm/transport"
"github.com/drone/go-scm/scm/transport/oauth2"
@ -45,6 +46,7 @@ const (
ProviderTypeBitbucket ProviderType = "bitbucket"
ProviderTypeStash ProviderType = "stash"
ProviderTypeGitea ProviderType = "gitea"
ProviderTypeGogs ProviderType = "gogs"
)
func (p ProviderType) Enum() []any {
@ -54,6 +56,7 @@ func (p ProviderType) Enum() []any {
ProviderTypeBitbucket,
ProviderTypeStash,
ProviderTypeGitea,
ProviderTypeGogs,
}
}
@ -112,7 +115,17 @@ func oauthTransport(token string) (http.RoundTripper, error) {
}, nil
}
func oauthTransportGitea(token string) (http.RoundTripper, error) {
func gogsTransport(token string) (http.RoundTripper, error) {
if token == "" {
return nil, errors.New("no token provided")
}
return &oauth2.Transport{
Scheme: oauth2.SchemeToken,
Source: oauth2.StaticTokenSource(&scm.Token{Token: token}),
}, nil
}
func authHeaderTransport(token string) (http.RoundTripper, error) {
if token == "" {
return nil, errors.New("no token provided")
}
@ -195,7 +208,17 @@ func getScmClientWithTransport(provider Provider) (*scm.Client, error) { //nolin
if err != nil {
return nil, fmt.Errorf("scm provider Host invalid: %w", err)
}
transport, transportErr = oauthTransportGitea(provider.Password)
transport, transportErr = authHeaderTransport(provider.Password)
case ProviderTypeGogs:
if provider.Host == "" {
return nil, errors.New("scm provider Host missing")
}
c, err = gogs.New(provider.Host)
if err != nil {
return nil, fmt.Errorf("scm provider Host invalid: %w", err)
}
transport, transportErr = gogsTransport(provider.Password)
default:
return nil, fmt.Errorf("unsupported scm provider: %s", provider)

View File

@ -170,7 +170,8 @@ export enum GitProviders {
GITLAB_SELF_HOSTED = 'GitLab Self-Hosted',
BITBUCKET = 'Bitbucket',
BITBUCKET_SERVER = 'Bitbucket Server',
GITEA = 'Gitea'
GITEA = 'Gitea',
GOGS = 'Gogs'
}
export const PullRequestFilterOption = {