You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by zh...@apache.org on 2023/02/07 03:55:23 UTC
[incubator-devlake] branch main updated: refactor: simplify pagerduty test onnection (#4321)
This is an automated email from the ASF dual-hosted git repository.
zhangliang2022 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new 8bcacd8ee refactor: simplify pagerduty test onnection (#4321)
8bcacd8ee is described below
commit 8bcacd8eeefe4c88d0a0e5135bd026feac94a5b3
Author: Klesh Wong <zh...@merico.dev>
AuthorDate: Tue Feb 7 11:55:19 2023 +0800
refactor: simplify pagerduty test onnection (#4321)
---
backend/plugins/pagerduty/api/connection.go | 22 +++++----------
backend/plugins/pagerduty/models/connection.go | 29 ++++++++++++++------
...h.go => 20230203_add_endpoint_proxy_to_conn.go} | 31 +++++++++++++---------
.../pagerduty/models/migrationscripts/register.go | 2 +-
4 files changed, 46 insertions(+), 38 deletions(-)
diff --git a/backend/plugins/pagerduty/api/connection.go b/backend/plugins/pagerduty/api/connection.go
index 5a35a8f31..569596127 100644
--- a/backend/plugins/pagerduty/api/connection.go
+++ b/backend/plugins/pagerduty/api/connection.go
@@ -19,39 +19,29 @@ package api
import (
"context"
- "fmt"
+ "net/http"
+
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
"github.com/apache/incubator-devlake/plugins/pagerduty/models"
- "net/http"
- "time"
)
// @Summary test pagerduty connection
// @Description Test Pagerduty Connection
// @Tags plugins/pagerduty
-// @Param body body models.TestConnectionRequest true "json body"
+// @Param body body models.PagerDutyConn true "json body"
// @Success 200 {object} shared.ApiBody "Success"
// @Failure 400 {string} errcode.Error "Bad Request"
// @Failure 500 {string} errcode.Error "Internal Error"
// @Router /plugins/pagerduty/test [POST]
func TestConnection(input *plugin.ApiResourceInput) (*plugin.ApiResourceOutput, errors.Error) {
- var params models.TestConnectionRequest
- err := api.Decode(input.Body, ¶ms, vld)
+ var connection models.PagerDutyConn
+ err := api.Decode(input.Body, &connection, vld)
if err != nil {
return nil, err
}
- apiClient, err := api.NewApiClient(
- context.TODO(),
- params.Endpoint,
- map[string]string{
- "Authorization": fmt.Sprintf("Token token=%s", params.Token),
- },
- 3*time.Second,
- params.Proxy,
- basicRes,
- )
+ apiClient, err := api.NewApiClientFromConnection(context.TODO(), basicRes, &connection)
if err != nil {
return nil, err
}
diff --git a/backend/plugins/pagerduty/models/connection.go b/backend/plugins/pagerduty/models/connection.go
index 9b3b8ec94..3d18839f1 100644
--- a/backend/plugins/pagerduty/models/connection.go
+++ b/backend/plugins/pagerduty/models/connection.go
@@ -18,19 +18,32 @@ limitations under the License.
package models
import (
+ "fmt"
+ "net/http"
+
+ "github.com/apache/incubator-devlake/core/errors"
helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
)
-// This object conforms to what the frontend currently sends.
-type PagerDutyConnection struct {
- helper.BaseConnection `mapstructure:",squash"`
- helper.AccessToken `mapstructure:",squash"`
+// AccessToken implements HTTP Token Authentication with Access Token
+type PagerDutyAccessToken helper.AccessToken
+
+// SetupAuthentication sets up the request headers for authentication
+func (at *PagerDutyAccessToken) SetupAuthentication(request *http.Request) errors.Error {
+ request.Header.Set("Authorization", fmt.Sprintf("Token token=%s", at.Token))
+ return nil
}
-type TestConnectionRequest struct {
- Endpoint string `json:"endpoint" validate:"required,url"`
- Token string `json:"token" validate:"required"`
- Proxy string `json:"proxy"`
+// PagerDutyConn holds the essential information to connect to the PagerDuty API
+type PagerDutyConn struct {
+ helper.RestConnection `mapstructure:",squash"`
+ PagerDutyAccessToken `mapstructure:",squash"`
+}
+
+// PagerDutyConnection holds GitlabConn plus ID/Name for database storage
+type PagerDutyConnection struct {
+ helper.BaseConnection `mapstructure:",squash"`
+ PagerDutyConn `mapstructure:",squash"`
}
// This object conforms to what the frontend currently expects.
diff --git a/backend/plugins/pagerduty/models/migrationscripts/20230103_increase_field_length.go b/backend/plugins/pagerduty/models/migrationscripts/20230203_add_endpoint_proxy_to_conn.go
similarity index 59%
rename from backend/plugins/pagerduty/models/migrationscripts/20230103_increase_field_length.go
rename to backend/plugins/pagerduty/models/migrationscripts/20230203_add_endpoint_proxy_to_conn.go
index 48c0df94a..262b0bf09 100644
--- a/backend/plugins/pagerduty/models/migrationscripts/20230103_increase_field_length.go
+++ b/backend/plugins/pagerduty/models/migrationscripts/20230203_add_endpoint_proxy_to_conn.go
@@ -21,25 +21,30 @@ import (
"github.com/apache/incubator-devlake/core/context"
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/helpers/migrationhelper"
- "github.com/apache/incubator-devlake/plugins/tapd/models/migrationscripts/archived"
)
-type increaseFieldLength struct{}
+type connection20230203 struct {
+ Endpoint string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
+ Proxy string `mapstructure:"proxy" json:"proxy"`
+ RateLimitPerHour int `comment:"api request rate limit per hour" json:"rateLimit"`
+}
+
+func (*connection20230203) TableName() string {
+ return "_tool_pagerduty_connections"
+}
+
+type addEndpointAndProxyToConnection struct{}
-func (*increaseFieldLength) Up(basicRes context.BasicRes) errors.Error {
+func (*addEndpointAndProxyToConnection) Up(basicRes context.BasicRes) errors.Error {
return migrationhelper.AutoMigrateTables(basicRes,
- &archived.TapdBug{},
- &archived.TapdBugCustomFields{},
- &archived.TapdStory{},
- &archived.TapdStoryCustomFields{},
- &archived.TapdTask{},
- &archived.TapdTaskCustomFields{})
+ &connection20230203{},
+ )
}
-func (*increaseFieldLength) Version() uint64 {
- return 20230103201138
+func (*addEndpointAndProxyToConnection) Version() uint64 {
+ return 20230203201814
}
-func (*increaseFieldLength) Name() string {
- return "Increase field length"
+func (*addEndpointAndProxyToConnection) Name() string {
+ return "add endpoint/proxy to pagerduty connection"
}
diff --git a/backend/plugins/pagerduty/models/migrationscripts/register.go b/backend/plugins/pagerduty/models/migrationscripts/register.go
index 79d2b2175..1a0e72d14 100644
--- a/backend/plugins/pagerduty/models/migrationscripts/register.go
+++ b/backend/plugins/pagerduty/models/migrationscripts/register.go
@@ -25,6 +25,6 @@ import (
func All() []plugin.MigrationScript {
return []plugin.MigrationScript{
new(addInitTables),
- new(increaseFieldLength),
+ new(addEndpointAndProxyToConnection),
}
}