mirror of https://gitlab.com/gitlab-org/cli.git
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/xanzy/go-gitlab"
|
|
)
|
|
|
|
type CreatePushMirrorOptions struct {
|
|
Url string
|
|
Enabled bool
|
|
OnlyProtectedBranches bool
|
|
KeepDivergentRefs bool
|
|
}
|
|
|
|
type CreatePullMirrorOptions struct {
|
|
Url string
|
|
Enabled bool
|
|
OnlyProtectedBranches bool
|
|
}
|
|
|
|
var CreatePushMirror = func(
|
|
client *gitlab.Client,
|
|
projectID interface{},
|
|
opts *CreatePushMirrorOptions,
|
|
) (*gitlab.ProjectMirror, error) {
|
|
if client == nil {
|
|
client = apiClient.Lab()
|
|
}
|
|
opt := &gitlab.AddProjectMirrorOptions{
|
|
URL: &opts.Url,
|
|
Enabled: &opts.Enabled,
|
|
OnlyProtectedBranches: &opts.OnlyProtectedBranches,
|
|
KeepDivergentRefs: &opts.KeepDivergentRefs,
|
|
}
|
|
pm, _, err := client.ProjectMirrors.AddProjectMirror(projectID, opt)
|
|
return pm, err
|
|
}
|
|
|
|
var CreatePullMirror = func(
|
|
client *gitlab.Client,
|
|
projectID interface{},
|
|
opts *CreatePullMirrorOptions,
|
|
) error {
|
|
if client == nil {
|
|
client = apiClient.Lab()
|
|
}
|
|
opt := &gitlab.EditProjectOptions{
|
|
ImportURL: &opts.Url,
|
|
Mirror: &opts.Enabled,
|
|
OnlyMirrorProtectedBranches: &opts.OnlyProtectedBranches,
|
|
}
|
|
_, _, err := client.Projects.EditProject(projectID, opt)
|
|
return err
|
|
}
|