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/gitea"
"github.com/drone/go-scm/scm/driver/github" "github.com/drone/go-scm/scm/driver/github"
"github.com/drone/go-scm/scm/driver/gitlab" "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/driver/stash"
"github.com/drone/go-scm/scm/transport" "github.com/drone/go-scm/scm/transport"
"github.com/drone/go-scm/scm/transport/oauth2" "github.com/drone/go-scm/scm/transport/oauth2"
@ -45,6 +46,7 @@ const (
ProviderTypeBitbucket ProviderType = "bitbucket" ProviderTypeBitbucket ProviderType = "bitbucket"
ProviderTypeStash ProviderType = "stash" ProviderTypeStash ProviderType = "stash"
ProviderTypeGitea ProviderType = "gitea" ProviderTypeGitea ProviderType = "gitea"
ProviderTypeGogs ProviderType = "gogs"
) )
func (p ProviderType) Enum() []any { func (p ProviderType) Enum() []any {
@ -54,6 +56,7 @@ func (p ProviderType) Enum() []any {
ProviderTypeBitbucket, ProviderTypeBitbucket,
ProviderTypeStash, ProviderTypeStash,
ProviderTypeGitea, ProviderTypeGitea,
ProviderTypeGogs,
} }
} }
@ -112,7 +115,17 @@ func oauthTransport(token string) (http.RoundTripper, error) {
}, nil }, 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 == "" { if token == "" {
return nil, errors.New("no token provided") return nil, errors.New("no token provided")
} }
@ -195,7 +208,17 @@ func getScmClientWithTransport(provider Provider) (*scm.Client, error) { //nolin
if err != nil { if err != nil {
return nil, fmt.Errorf("scm provider Host invalid: %w", err) 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: default:
return nil, fmt.Errorf("unsupported scm provider: %s", provider) return nil, fmt.Errorf("unsupported scm provider: %s", provider)

View File

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