Skip to content

Commit

Permalink
Few minor styling tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
svanharmelen committed Aug 8, 2024
1 parent 18b8815 commit 449f521
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 101 deletions.
110 changes: 55 additions & 55 deletions import.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,59 @@ func (s *ImportService) ImportGitHubGistsIntoGitLabSnippets(opt *ImportGitHubGis
return s.client.Do(req, nil)
}

// BitbucketCloudImport represents the response from an import from Bitbucket Cloud.
// This uses the same "ProjectImportEntity" as GitHub, but is copied here to avoid conflicts.
// BitbucketServerImport represents the response from an import from Bitbucket
// Server.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
type BitbucketServerImport struct {
ID int `json:"id"`
Name string `json:"name"`
FullPath string `json:"full_path"`
FullName string `json:"full_name"`
RefsUrl string `json:"refs_url"`
}

func (s BitbucketServerImport) String() string {
return Stringify(s)
}

// ImportRepositoryFromBitbucketServerOptions represents the available ImportRepositoryFromBitbucketServer() options.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
type ImportRepositoryFromBitbucketServerOptions struct {
BitbucketServerUrl *string `url:"bitbucket_server_url,omitempty" json:"bitbucket_server_url,omitempty"`
BitbucketServerUsername *string `url:"bitbucket_server_username,omitempty" json:"bitbucket_server_username,omitempty"`
PersonalAccessToken *string `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
BitbucketServerProject *string `url:"bitbucket_server_project,omitempty" json:"bitbucket_server_project,omitempty"`
BitbucketServerRepo *string `url:"bitbucket_server_repo,omitempty" json:"bitbucket_server_repo,omitempty"`
NewName *string `url:"new_name,omitempty" json:"new_name,omitempty"`
NewNamespace *string `url:"new_namespace,omitempty" json:"new_namespace,omitempty"`
TimeoutStrategy *string `url:"timeout_strategy,omitempty" json:"timeout_strategy,omitempty"`
}

// Import a repository from Bitbucket Server.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
func (s *ImportService) ImportRepositoryFromBitbucketServer(opt *ImportRepositoryFromBitbucketServerOptions, options ...RequestOptionFunc) (*BitbucketServerImport, *Response, error) {
req, err := s.client.NewRequest(http.MethodPost, "import/bitbucket_server", opt, options)
if err != nil {
return nil, nil, err
}

bsi := new(BitbucketServerImport)
resp, err := s.client.Do(req, bsi)
if err != nil {
return nil, resp, err
}

return bsi, resp, nil
}

// BitbucketCloudImport represents the response from an import from Bitbucket
// Cloud.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-cloud
Expand All @@ -182,7 +233,8 @@ func (s BitbucketCloudImport) String() string {
return Stringify(s)
}

// ImportRepositoryFromBitbucketCloudOptions represents the available ImportRepositoryFromBitbucketCloud() options.
// ImportRepositoryFromBitbucketCloudOptions represents the available
// ImportRepositoryFromBitbucketCloud() options.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-cloud
Expand All @@ -195,7 +247,6 @@ type ImportRepositoryFromBitbucketCloudOptions struct {
}

// Import a repository from Bitbucket Cloud.
// For importing repositories from Bitbucket Server or Data Center, see ImportRepositoryFromBitbucketServer().
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-cloud
Expand All @@ -213,54 +264,3 @@ func (s *ImportService) ImportRepositoryFromBitbucketCloud(opt *ImportRepository

return bci, resp, nil
}

// BitbucketServerImport represents the response from an import from Bitbucket Server.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
type BitbucketServerImport struct {
ID int `json:"id"`
Name string `json:"name"`
FullPath string `json:"full_path"`
FullName string `json:"full_name"`
RefsUrl string `json:"refs_url"`
}

func (s BitbucketServerImport) String() string {
return Stringify(s)
}

// ImportRepositoryFromBitbucketServerOptions represents the available ImportRepositoryFromBitbucketServer() options.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
type ImportRepositoryFromBitbucketServerOptions struct {
BitbucketServerUrl *string `url:"bitbucket_server_url,omitempty" json:"bitbucket_server_url,omitempty"`
BitbucketServerUsername *string `url:"bitbucket_server_username,omitempty" json:"bitbucket_server_username,omitempty"`
PersonalAccessToken *string `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
BitbucketServerProject *string `url:"bitbucket_server_project,omitempty" json:"bitbucket_server_project,omitempty"`
BitbucketServerRepo *string `url:"bitbucket_server_repo,omitempty" json:"bitbucket_server_repo,omitempty"`
NewName *string `url:"new_name,omitempty" json:"new_name,omitempty"`
NewNamespace *string `url:"new_namespace,omitempty" json:"new_namespace,omitempty"`
TimeoutStrategy *string `url:"timeout_strategy,omitempty" json:"timeout_strategy,omitempty"`
}

// Import a repository from Bitbucket Server.
// For importing repositories from Bitbucket Cloud, see ImportRepositoryFromBitbucketCloud().
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-server
func (s *ImportService) ImportRepositoryFromBitbucketServer(opt *ImportRepositoryFromBitbucketServerOptions, options ...RequestOptionFunc) (*BitbucketServerImport, *Response, error) {
req, err := s.client.NewRequest(http.MethodPost, "import/bitbucket_server", opt, options)
if err != nil {
return nil, nil, err
}

bsi := new(BitbucketServerImport)
resp, err := s.client.Do(req, bsi)
if err != nil {
return nil, resp, err
}

return bsi, resp, nil
}
92 changes: 46 additions & 46 deletions import_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,52 @@ func TestImportService_ImportGitHubGistsIntoGitLabSnippets(t *testing.T) {
require.Nil(t, resp)
}

func TestImportService_ImportRepositoryFromBitbucketServer(t *testing.T) {
mux, client := setup(t)

mux.HandleFunc("/api/v4/import/bitbucket_server", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPost)
fmt.Fprintf(w, `
{
"id": 27,
"name": "my-repo",
"full_path": "/root/my-repo",
"full_name": "Administrator / my-repo",
"refs_url": "/root/my-repo/refs"
}
`)
})

want := &BitbucketServerImport{
ID: 27,
Name: "my-repo",
FullPath: "/root/my-repo",
FullName: "Administrator / my-repo",
RefsUrl: "/root/my-repo/refs",
}

opt := &ImportRepositoryFromBitbucketServerOptions{
BitbucketServerUrl: Ptr("https://bitbucket.example.com"),
BitbucketServerUsername: Ptr("username"),
PersonalAccessToken: Ptr("token"),
BitbucketServerProject: Ptr("root"),
BitbucketServerRepo: Ptr("my-repo"),
NewName: Ptr("my-repo"),
NewNamespace: Ptr("root"),
TimeoutStrategy: Ptr("pessimistic"),
}

bsi, resp, err := client.Import.ImportRepositoryFromBitbucketServer(opt)
require.NoError(t, err)
require.NotNil(t, resp)
require.Equal(t, want, bsi)

bsi, resp, err = client.Import.ImportRepositoryFromBitbucketServer(opt, errorOption)
require.EqualError(t, err, "RequestOptionFunc returns an error")
require.Nil(t, resp)
require.Nil(t, bsi)
}

func TestImportService_ImportRepositoryFromBitbucketCloud(t *testing.T) {
mux, client := setup(t)

Expand Down Expand Up @@ -174,49 +220,3 @@ func TestImportService_ImportRepositoryFromBitbucketCloud(t *testing.T) {
require.Nil(t, resp)
require.Nil(t, bci)
}

func TestImportService_ImportRepositoryFromBitbucketServer(t *testing.T) {
mux, client := setup(t)

mux.HandleFunc("/api/v4/import/bitbucket_server", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPost)
fmt.Fprintf(w, `
{
"id": 27,
"name": "my-repo",
"full_path": "/root/my-repo",
"full_name": "Administrator / my-repo",
"refs_url": "/root/my-repo/refs"
}
`)
})

want := &BitbucketServerImport{
ID: 27,
Name: "my-repo",
FullPath: "/root/my-repo",
FullName: "Administrator / my-repo",
RefsUrl: "/root/my-repo/refs",
}

opt := &ImportRepositoryFromBitbucketServerOptions{
BitbucketServerUrl: Ptr("https://bitbucket.example.com"),
BitbucketServerUsername: Ptr("username"),
PersonalAccessToken: Ptr("token"),
BitbucketServerProject: Ptr("root"),
BitbucketServerRepo: Ptr("my-repo"),
NewName: Ptr("my-repo"),
NewNamespace: Ptr("root"),
TimeoutStrategy: Ptr("pessimistic"),
}

bsi, resp, err := client.Import.ImportRepositoryFromBitbucketServer(opt)
require.NoError(t, err)
require.NotNil(t, resp)
require.Equal(t, want, bsi)

bsi, resp, err = client.Import.ImportRepositoryFromBitbucketServer(opt, errorOption)
require.EqualError(t, err, "RequestOptionFunc returns an error")
require.Nil(t, resp)
require.Nil(t, bsi)
}

0 comments on commit 449f521

Please sign in to comment.