You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2022/06/21 01:19:52 UTC
[incubator-devlake] 03/04: feat: multi-conn for tapd and update migrationscripts
This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit c91b8a123b3aefa69493f7c4ec188624942739cc
Author: abeizn <zi...@merico.dev>
AuthorDate: Mon Jun 20 20:20:11 2022 +0800
feat: multi-conn for tapd and update migrationscripts
---
plugins/tapd/api/connection.go | 9 ++++++---
plugins/tapd/models/connection.go | 18 ++++++++++++++----
.../migrationscripts/archived/tapd_connection.go | 4 ++--
plugins/tapd/tasks/api_client.go | 2 +-
4 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/plugins/tapd/api/connection.go b/plugins/tapd/api/connection.go
index 3cad748e..b7826f50 100644
--- a/plugins/tapd/api/connection.go
+++ b/plugins/tapd/api/connection.go
@@ -78,7 +78,8 @@ POST /plugins/tapd/connections
{
"name": "tapd data connections name",
"endpoint": "tapd api endpoint, i.e. https://merico.atlassian.net/rest",
- "Token": "generated by `echo -n <tapd login email>:<tapd token> | base64`",
+ "username": "username, usually should be email address",
+ "password": "jenkins api access token",
"rateLimit": 10800,
}
*/
@@ -101,7 +102,8 @@ PATCH /plugins/tapd/connections/:connectionId
{
"name": "tapd data connections name",
"endpoint": "tapd api endpoint, i.e. https://merico.atlassian.net/rest",
- "Token": "generated by `echo -n <tapd login email>:<tapd token> | base64`",
+ "username": "username, usually should be email address",
+ "password": "jenkins api access token",
"rateLimit": 10800,
}
*/
@@ -148,7 +150,8 @@ GET /plugins/tapd/connections/:connectionId
{
"name": "tapd data connections name",
"endpoint": "tapd api endpoint, i.e. https://merico.atlassian.net/rest",
- "Token": "generated by `echo -n <tapd login email>:<tapd token> | base64`",
+ "username": "username, usually should be email address",
+ "password": "jenkins api access token",
"rateLimit": 10800,
}
*/
diff --git a/plugins/tapd/models/connection.go b/plugins/tapd/models/connection.go
index 5e49cd2b..50739886 100644
--- a/plugins/tapd/models/connection.go
+++ b/plugins/tapd/models/connection.go
@@ -17,7 +17,12 @@ limitations under the License.
package models
-import "github.com/apache/incubator-devlake/plugins/helper"
+import (
+ "encoding/base64"
+ "fmt"
+
+ "github.com/apache/incubator-devlake/plugins/helper"
+)
type TestConnectionRequest struct {
Endpoint string `json:"endpoint" validate:"required,url"`
@@ -31,13 +36,18 @@ type WorkspaceResponse struct {
Value string
}
-type AccessToken struct {
- Token string `mapstructure:"token" validate:"required" json:"token"`
+type BasicAuth struct {
+ Username string `mapstructure:"username" validate:"required" json:"username"`
+ Password string `mapstructure:"password" validate:"required" json:"password"`
+}
+
+func (ba BasicAuth) GetEncodedToken() string {
+ return base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%v:%v", ba.Username, ba.Password)))
}
type TapdConnection struct {
helper.RestConnection `mapstructure:",squash"`
- AccessToken `mapstructure:",squash"`
+ BasicAuth `mapstructure:",squash"`
}
type TapdConnectionDetail struct {
diff --git a/plugins/tapd/models/migrationscripts/archived/tapd_connection.go b/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
index 86f1f7fb..df2b0f34 100644
--- a/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
+++ b/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
@@ -32,7 +32,7 @@ type AccessToken struct {
type BasicAuth struct {
Username string `mapstructure:"username" validate:"required" json:"username"`
- Password string `mapstructure:"password" validate:"required" json:"password" encrypt:"yes"`
+ Password string `mapstructure:"password" validate:"required" json:"password"`
}
type RestConnection struct {
@@ -44,7 +44,7 @@ type RestConnection struct {
type TapdConnection struct {
RestConnection `mapstructure:",squash"`
- AccessToken `mapstructure:",squash"`
+ BasicAuth `mapstructure:",squash"`
}
type TapdConnectionDetail struct {
diff --git a/plugins/tapd/tasks/api_client.go b/plugins/tapd/tasks/api_client.go
index 9571a8ce..352b7fe8 100644
--- a/plugins/tapd/tasks/api_client.go
+++ b/plugins/tapd/tasks/api_client.go
@@ -29,8 +29,8 @@ import (
func NewTapdApiClient(taskCtx core.TaskContext, connection *models.TapdConnection) (*helper.ApiAsyncClient, error) {
- auth := base64.StdEncoding.EncodeToString([]byte(connection.Token))
// create synchronize api client so we can calculate api rate limit dynamically
+ auth := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%v:%v", connection.Username, connection.Password)))
headers := map[string]string{
"Authorization": fmt.Sprintf("Basic %v", auth),
}