init
This commit is contained in:
31
internal/gitadapters/base.go
Normal file
31
internal/gitadapters/base.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package gitadapters
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
type baseHTTP struct {
|
||||
baseURL string
|
||||
bearerToken string
|
||||
}
|
||||
|
||||
func (b *baseHTTP) createRequest(method string, body io.Reader, path ...string) (r *http.Request, err error) {
|
||||
target, err := url.JoinPath(b.baseURL, path...)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("can not parse path: %w", err)
|
||||
return
|
||||
}
|
||||
req, err := http.NewRequest(method, target, body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if b.bearerToken != "" {
|
||||
req.Header.Set("Authorization", "Bearer "+b.bearerToken)
|
||||
}
|
||||
|
||||
return req, nil
|
||||
}
|
||||
38
internal/gitadapters/bitbucket.go
Normal file
38
internal/gitadapters/bitbucket.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package gitadapters
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type BitbucketAdapter struct {
|
||||
baseHTTP
|
||||
}
|
||||
|
||||
func NewBitbucket(baseURL string, bearerToken string) *BitbucketAdapter {
|
||||
return &BitbucketAdapter{
|
||||
baseHTTP{
|
||||
baseURL: baseURL,
|
||||
bearerToken: bearerToken,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (b *BitbucketAdapter) GetDiff(projectKey, repositorySlug string, pullRequestID int) (diff io.Reader, err error) {
|
||||
r, err := b.createRequest(
|
||||
http.MethodGet,
|
||||
nil,
|
||||
"/rest/api/1.0/projects/", projectKey, "repos", repositorySlug, "pull-requests", fmt.Sprintf("%d.diff", pullRequestID),
|
||||
)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
response, err := http.DefaultClient.Do(r)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
diff = response.Body
|
||||
return
|
||||
}
|
||||
1
internal/gitadapters/resource.go
Normal file
1
internal/gitadapters/resource.go
Normal file
@@ -0,0 +1 @@
|
||||
package gitadapters
|
||||
Reference in New Issue
Block a user