2019-07-09 23:56:38 +03:00
|
|
|
package gitlab
|
|
|
|
|
|
|
|
import (
|
2019-07-19 20:39:15 +03:00
|
|
|
"net/http"
|
2019-07-19 19:56:58 +03:00
|
|
|
"time"
|
|
|
|
|
2019-07-09 23:56:38 +03:00
|
|
|
"github.com/xanzy/go-gitlab"
|
2019-07-17 23:41:42 +03:00
|
|
|
|
|
|
|
"github.com/MichaelMure/git-bug/bridge/core"
|
2019-07-09 23:56:38 +03:00
|
|
|
)
|
|
|
|
|
2019-07-19 19:56:58 +03:00
|
|
|
const (
|
2019-07-19 20:39:15 +03:00
|
|
|
target = "gitlab"
|
2019-07-19 19:56:58 +03:00
|
|
|
keyProjectID = "project-id"
|
|
|
|
keyGitlabId = "gitlab-id"
|
|
|
|
keyGitlabUrl = "gitlab-url"
|
|
|
|
keyGitlabLogin = "gitlab-login"
|
|
|
|
keyToken = "token"
|
|
|
|
keyTarget = "target"
|
|
|
|
keyOrigin = "origin"
|
|
|
|
|
|
|
|
defaultTimeout = 60 * time.Second
|
|
|
|
)
|
|
|
|
|
2019-07-09 23:56:38 +03:00
|
|
|
func init() {
|
|
|
|
core.Register(&Gitlab{})
|
|
|
|
}
|
|
|
|
|
|
|
|
type Gitlab struct{}
|
|
|
|
|
|
|
|
func (*Gitlab) Target() string {
|
|
|
|
return target
|
|
|
|
}
|
|
|
|
|
|
|
|
func (*Gitlab) NewImporter() core.Importer {
|
|
|
|
return &gitlabImporter{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (*Gitlab) NewExporter() core.Exporter {
|
|
|
|
return &gitlabExporter{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func buildClient(token string) *gitlab.Client {
|
2019-07-19 20:39:15 +03:00
|
|
|
client := &http.Client{
|
|
|
|
Timeout: defaultTimeout,
|
|
|
|
}
|
2019-07-10 01:41:43 +03:00
|
|
|
|
2019-07-19 20:39:15 +03:00
|
|
|
return gitlab.NewClient(client, token)
|
2019-07-10 01:41:43 +03:00
|
|
|
}
|