You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2022/07/14 07:39:10 UTC

[incubator-devlake] 01/06: refactor: rename RateLimit

This is an automated email from the ASF dual-hosted git repository.

warren pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit b7b1e362f673a801edfb1c2dd70a9dd01f27c208
Author: phzbbbbbbbb <48...@users.noreply.github.com>
AuthorDate: Wed Jul 13 21:21:58 2022 +0800

    refactor: rename RateLimit
---
 .../ae/models/migrationscripts/archived/connection.go   |  6 +++---
 .../models/migrationscripts/archived/connection.go      | 12 ++++++------
 plugins/feishu/tasks/api_client.go                      |  5 +++--
 .../models/migrationscripts/archived/connection.go      |  8 ++++----
 plugins/gitee/models/migrationscripts/init_schema.go    |  2 +-
 plugins/gitee/tasks/api_client.go                       |  6 +++---
 .../models/migrationscripts/init_schema_20220707.go     | 10 +++++-----
 plugins/github/tasks/api_client.go                      | 17 +++++++++--------
 .../models/migrationscripts/archived/connection.go      |  8 ++++----
 plugins/gitlab/models/migrationscripts/init_schema.go   |  2 +-
 plugins/gitlab/tasks/api_client.go                      |  6 +++---
 plugins/helper/connection.go                            |  8 ++++----
 .../models/migrationscripts/archived/connection.go      |  8 ++++----
 plugins/jenkins/models/migrationscripts/init_schema.go  |  2 +-
 plugins/jenkins/tasks/client.go                         |  2 +-
 .../jira/models/migrationscripts/archived/connection.go |  8 ++++----
 .../migrationscripts/archived/connection_history.go     |  4 ++--
 plugins/jira/models/migrationscripts/init_schema.go     |  4 ++--
 plugins/jira/tasks/api_client.go                        |  2 +-
 plugins/tapd/impl/impl.go                               |  4 ++--
 .../models/migrationscripts/archived/tapd_connection.go |  8 ++++----
 plugins/tapd/tasks/api_client.go                        |  2 +-
 22 files changed, 68 insertions(+), 66 deletions(-)

diff --git a/plugins/ae/models/migrationscripts/archived/connection.go b/plugins/ae/models/migrationscripts/archived/connection.go
index 6cbfe39e..e76df28e 100644
--- a/plugins/ae/models/migrationscripts/archived/connection.go
+++ b/plugins/ae/models/migrationscripts/archived/connection.go
@@ -28,9 +28,9 @@ type AeConnection struct {
 	CreatedAt time.Time `json:"createdAt"`
 	UpdatedAt time.Time `json:"updatedAt"`
 
-	Endpoint  string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy     string `mapstructure:"proxy" json:"proxy"`
-	RateLimit int    `comment:"api request rate limit per hour" json:"rateLimit"`
+	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"`
 
 	AppId     string `mapstructure:"app_id" validate:"required" json:"app_id"`
 	SecretKey string `mapstructure:"secret_key" validate:"required" json:"secret_key" encrypt:"yes"`
diff --git a/plugins/feishu/models/migrationscripts/archived/connection.go b/plugins/feishu/models/migrationscripts/archived/connection.go
index 8e8e695f..9715f006 100644
--- a/plugins/feishu/models/migrationscripts/archived/connection.go
+++ b/plugins/feishu/models/migrationscripts/archived/connection.go
@@ -23,12 +23,12 @@ import (
 
 type FeishuConnection struct {
 	commonArchived.Model
-	Name      string `gorm:"type:varchar(100);uniqueIndex" json:"name" validate:"required"`
-	Endpoint  string `mapstructure:"endpoint" env:"GITHUB_ENDPOINT" validate:"required"`
-	Proxy     string `mapstructure:"proxy" env:"GITHUB_PROXY"`
-	RateLimit int    `comment:"api request rate limit per hour"`
-	AppId     string `mapstructure:"app_id" validate:"required" json:"app_id"`
-	SecretKey string `mapstructure:"secret_key" validate:"required" json:"secret_key" encrypt:"yes"`
+	Name             string `gorm:"type:varchar(100);uniqueIndex" json:"name" validate:"required"`
+	Endpoint         string `mapstructure:"endpoint" env:"GITHUB_ENDPOINT" validate:"required"`
+	Proxy            string `mapstructure:"proxy" env:"GITHUB_PROXY"`
+	RateLimitPerHour int    `comment:"api request rate limit per hour"`
+	AppId            string `mapstructure:"app_id" validate:"required" json:"app_id"`
+	SecretKey        string `mapstructure:"secret_key" validate:"required" json:"secret_key" encrypt:"yes"`
 }
 
 func (FeishuConnection) TableName() string {
diff --git a/plugins/feishu/tasks/api_client.go b/plugins/feishu/tasks/api_client.go
index 68b9fe67..13684042 100644
--- a/plugins/feishu/tasks/api_client.go
+++ b/plugins/feishu/tasks/api_client.go
@@ -19,9 +19,10 @@ package tasks
 
 import (
 	"fmt"
+	"net/http"
+
 	"github.com/apache/incubator-devlake/plugins/feishu/apimodels"
 	"github.com/apache/incubator-devlake/plugins/feishu/models"
-	"net/http"
 
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/helper"
@@ -72,7 +73,7 @@ func NewFeishuApiClient(taskCtx core.TaskContext, connection *models.FeishuConne
 
 	// create async api client
 	asyncApiCLient, err := helper.CreateAsyncApiClient(taskCtx, apiClient, &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 	})
 	if err != nil {
 		return nil, err
diff --git a/plugins/gitee/models/migrationscripts/archived/connection.go b/plugins/gitee/models/migrationscripts/archived/connection.go
index 2446fb57..7284f138 100644
--- a/plugins/gitee/models/migrationscripts/archived/connection.go
+++ b/plugins/gitee/models/migrationscripts/archived/connection.go
@@ -27,10 +27,10 @@ type GiteeConnection struct {
 }
 
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limt per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	Endpoint         string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
+	Proxy            string `mapstructure:"proxy" json:"proxy"`
+	RateLimitPerHour int    `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 type BaseConnection struct {
diff --git a/plugins/gitee/models/migrationscripts/init_schema.go b/plugins/gitee/models/migrationscripts/init_schema.go
index a25aa3c6..8840d138 100644
--- a/plugins/gitee/models/migrationscripts/init_schema.go
+++ b/plugins/gitee/models/migrationscripts/init_schema.go
@@ -107,7 +107,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error {
 		return err
 	}
 	conn.Proxy = v.GetString("GITEE_PROXY")
-	conn.RateLimit = v.GetInt("GITEE_API_REQUESTS_PER_HOUR")
+	conn.RateLimitPerHour = v.GetInt("GITEE_API_REQUESTS_PER_HOUR")
 
 	err = db.Clauses(clause.OnConflict{DoNothing: true}).Create(conn).Error
 
diff --git a/plugins/gitee/tasks/api_client.go b/plugins/gitee/tasks/api_client.go
index 98c7750f..a22c46a1 100644
--- a/plugins/gitee/tasks/api_client.go
+++ b/plugins/gitee/tasks/api_client.go
@@ -50,16 +50,16 @@ func NewGiteeApiClient(taskCtx core.TaskContext, connection *models.GiteeConnect
 	})
 
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 		DynamicRateLimit: func(res *http.Response) (int, time.Duration, error) {
-			rateLimitHeader := res.Header.Get("RateLimit-Limit")
+			rateLimitHeader := res.Header.Get("RateLimitPerHour-Limit")
 			if rateLimitHeader == "" {
 				// use default
 				return 0, 0, nil
 			}
 			rateLimit, err := strconv.Atoi(rateLimitHeader)
 			if err != nil {
-				return 0, 0, fmt.Errorf("failed to parse RateLimit-Limit header: %w", err)
+				return 0, 0, fmt.Errorf("failed to parse RateLimitPerHour-Limit header: %w", err)
 			}
 			// seems like gitlab rate limit is on minute basis
 			return rateLimit, 1 * time.Minute, nil
diff --git a/plugins/github/models/migrationscripts/init_schema_20220707.go b/plugins/github/models/migrationscripts/init_schema_20220707.go
index 07c85a4d..df06f091 100644
--- a/plugins/github/models/migrationscripts/init_schema_20220707.go
+++ b/plugins/github/models/migrationscripts/init_schema_20220707.go
@@ -30,11 +30,11 @@ import (
 
 type GithubConnection20220707 struct {
 	commonArchived.Model
-	Name      string `gorm:"type:varchar(100);uniqueIndex" json:"name" validate:"required"`
-	Endpoint  string `mapstructure:"endpoint" env:"GITHUB_ENDPOINT" validate:"required"`
-	Proxy     string `mapstructure:"proxy" env:"GITHUB_PROXY"`
-	RateLimit int    `comment:"api request rate limit per hour"`
-	Token     string `mapstructure:"token" env:"GITHUB_AUTH" validate:"required" encrypt:"yes"`
+	Name             string `gorm:"type:varchar(100);uniqueIndex" json:"name" validate:"required"`
+	Endpoint         string `mapstructure:"endpoint" env:"GITHUB_ENDPOINT" validate:"required"`
+	Proxy            string `mapstructure:"proxy" env:"GITHUB_PROXY"`
+	RateLimitPerHour int    `comment:"api request rate limit per hour"`
+	Token            string `mapstructure:"token" env:"GITHUB_AUTH" validate:"required" encrypt:"yes"`
 }
 
 func (GithubConnection20220707) TableName() string {
diff --git a/plugins/github/tasks/api_client.go b/plugins/github/tasks/api_client.go
index 230b3bbf..55bfd47f 100644
--- a/plugins/github/tasks/api_client.go
+++ b/plugins/github/tasks/api_client.go
@@ -19,12 +19,13 @@ package tasks
 
 import (
 	"fmt"
-	"github.com/apache/incubator-devlake/plugins/github/models"
 	"net/http"
 	"strconv"
 	"strings"
 	"time"
 
+	"github.com/apache/incubator-devlake/plugins/github/models"
+
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/helper"
 )
@@ -54,17 +55,17 @@ func CreateApiClient(taskCtx core.TaskContext, connection *models.GithubConnecti
 
 	// create rate limit calculator
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 		Method:               http.MethodGet,
 		DynamicRateLimit: func(res *http.Response) (int, time.Duration, error) {
 			/* calculate by number of remaining requests
-			remaining, err := strconv.Atoi(res.Header.Get("X-RateLimit-Remaining"))
+			remaining, err := strconv.Atoi(res.Header.Get("X-RateLimitPerHour-Remaining"))
 			if err != nil {
-				return 0,0, fmt.Errorf("failed to parse X-RateLimit-Remaining header: %w", err)
+				return 0,0, fmt.Errorf("failed to parse X-RateLimitPerHour-Remaining header: %w", err)
 			}
-			reset, err := strconv.Atoi(res.Header.Get("X-RateLimit-Reset"))
+			reset, err := strconv.Atoi(res.Header.Get("X-RateLimitPerHour-Reset"))
 			if err != nil {
-				return 0, 0, fmt.Errorf("failed to parse X-RateLimit-Reset header: %w", err)
+				return 0, 0, fmt.Errorf("failed to parse X-RateLimitPerHour-Reset header: %w", err)
 			}
 			date, err := http.ParseTime(res.Header.Get("Date"))
 			if err != nil {
@@ -72,9 +73,9 @@ func CreateApiClient(taskCtx core.TaskContext, connection *models.GithubConnecti
 			}
 			return remaining * len(tokens), time.Unix(int64(reset), 0).Sub(date), nil
 			*/
-			rateLimit, err := strconv.Atoi(res.Header.Get("X-RateLimit-Limit"))
+			rateLimit, err := strconv.Atoi(res.Header.Get("X-RateLimitPerHour-Limit"))
 			if err != nil {
-				return 0, 0, fmt.Errorf("failed to parse X-RateLimit-Limit header: %w", err)
+				return 0, 0, fmt.Errorf("failed to parse X-RateLimitPerHour-Limit header: %w", err)
 			}
 			// even though different token could have different rate limit, but it is hard to support it
 			// so, we calculate the rate limit of a single token, and presume all tokens are the same, to
diff --git a/plugins/gitlab/models/migrationscripts/archived/connection.go b/plugins/gitlab/models/migrationscripts/archived/connection.go
index 0de3012c..bd04cf5c 100644
--- a/plugins/gitlab/models/migrationscripts/archived/connection.go
+++ b/plugins/gitlab/models/migrationscripts/archived/connection.go
@@ -28,10 +28,10 @@ type GitlabConnection struct {
 }
 
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limt per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	Endpoint         string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
+	Proxy            string `mapstructure:"proxy" json:"proxy"`
+	RateLimitPerHour int    `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 type BaseConnection struct {
diff --git a/plugins/gitlab/models/migrationscripts/init_schema.go b/plugins/gitlab/models/migrationscripts/init_schema.go
index 0eeb8958..30113424 100644
--- a/plugins/gitlab/models/migrationscripts/init_schema.go
+++ b/plugins/gitlab/models/migrationscripts/init_schema.go
@@ -103,7 +103,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error {
 		return err
 	}
 	conn.Proxy = v.GetString("GITLAB_PROXY")
-	conn.RateLimit = v.GetInt("GITLAB_API_REQUESTS_PER_HOUR")
+	conn.RateLimitPerHour = v.GetInt("GITLAB_API_REQUESTS_PER_HOUR")
 
 	err = db.Clauses(clause.OnConflict{DoNothing: true}).Create(conn).Error
 
diff --git a/plugins/gitlab/tasks/api_client.go b/plugins/gitlab/tasks/api_client.go
index 41141198..843816f4 100644
--- a/plugins/gitlab/tasks/api_client.go
+++ b/plugins/gitlab/tasks/api_client.go
@@ -47,16 +47,16 @@ func NewGitlabApiClient(taskCtx core.TaskContext, connection *models.GitlabConne
 
 	// create rate limit calculator
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 		DynamicRateLimit: func(res *http.Response) (int, time.Duration, error) {
-			rateLimitHeader := res.Header.Get("RateLimit-Limit")
+			rateLimitHeader := res.Header.Get("RateLimitPerHour-Limit")
 			if rateLimitHeader == "" {
 				// use default
 				return 0, 0, nil
 			}
 			rateLimit, err := strconv.Atoi(rateLimitHeader)
 			if err != nil {
-				return 0, 0, fmt.Errorf("failed to parse RateLimit-Limit header: %w", err)
+				return 0, 0, fmt.Errorf("failed to parse RateLimitPerHour-Limit header: %w", err)
 			}
 			// seems like gitlab rate limit is on minute basis
 			return rateLimit, 1 * time.Minute, nil
diff --git a/plugins/helper/connection.go b/plugins/helper/connection.go
index 220143dc..22860118 100644
--- a/plugins/helper/connection.go
+++ b/plugins/helper/connection.go
@@ -60,10 +60,10 @@ type AppKey struct {
 
 // RestConnection FIXME ...
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limit per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	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"`
 }
 
 // ConnectionApiHelper is used to write the CURD of connection
diff --git a/plugins/jenkins/models/migrationscripts/archived/connection.go b/plugins/jenkins/models/migrationscripts/archived/connection.go
index 5dc0990c..0252707b 100644
--- a/plugins/jenkins/models/migrationscripts/archived/connection.go
+++ b/plugins/jenkins/models/migrationscripts/archived/connection.go
@@ -32,10 +32,10 @@ type BasicAuth struct {
 }
 
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limt per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	Endpoint         string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
+	Proxy            string `mapstructure:"proxy" json:"proxy"`
+	RateLimitPerHour int    `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 // This object conforms to what the frontend currently sends.
diff --git a/plugins/jenkins/models/migrationscripts/init_schema.go b/plugins/jenkins/models/migrationscripts/init_schema.go
index 406974c4..b3db24a4 100644
--- a/plugins/jenkins/models/migrationscripts/init_schema.go
+++ b/plugins/jenkins/models/migrationscripts/init_schema.go
@@ -63,7 +63,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error {
 	conn.ID = 1
 	conn.Endpoint = endPoint
 	conn.Proxy = v.GetString("JENKINS_PROXY")
-	conn.RateLimit = v.GetInt("JENKINS_API_REQUESTS_PER_HOUR")
+	conn.RateLimitPerHour = v.GetInt("JENKINS_API_REQUESTS_PER_HOUR")
 	conn.Username = useName
 	conn.Password, err = core.Encrypt(encKey, passWord)
 	if err != nil {
diff --git a/plugins/jenkins/tasks/client.go b/plugins/jenkins/tasks/client.go
index 021f5f66..42d9ecde 100644
--- a/plugins/jenkins/tasks/client.go
+++ b/plugins/jenkins/tasks/client.go
@@ -46,7 +46,7 @@ func CreateApiClient(taskCtx core.TaskContext, connection *models.JenkinsConnect
 
 	// create rate limit calculator
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 	}
 	asyncApiClient, err := helper.CreateAsyncApiClient(
 		taskCtx,
diff --git a/plugins/jira/models/migrationscripts/archived/connection.go b/plugins/jira/models/migrationscripts/archived/connection.go
index 28d2d523..eef59a1d 100644
--- a/plugins/jira/models/migrationscripts/archived/connection.go
+++ b/plugins/jira/models/migrationscripts/archived/connection.go
@@ -32,10 +32,10 @@ type BaseConnection struct {
 }
 
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limit per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	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"`
 }
 
 type TestConnectionRequest struct {
diff --git a/plugins/jira/models/migrationscripts/archived/connection_history.go b/plugins/jira/models/migrationscripts/archived/connection_history.go
index 603b04d4..fae6f10f 100644
--- a/plugins/jira/models/migrationscripts/archived/connection_history.go
+++ b/plugins/jira/models/migrationscripts/archived/connection_history.go
@@ -30,7 +30,7 @@ type JiraConnectionV11 struct {
 	StoryPointField            string    `gorm:"type:varchar(50);" json:"storyPointField"`
 	RemotelinkCommitShaPattern string    `gorm:"type:varchar(255);comment='golang regexp, the first group will be recognized as commit sha, ref https://github.com/google/re2/wiki/Syntax'" json:"remotelinkCommitShaPattern"`
 	Proxy                      string    `json:"proxy"`
-	RateLimit                  int       `comment:"api request rate limt per hour" json:"rateLimit"`
+	RateLimitPerHour           int       `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 func (JiraConnectionV11) TableName() string {
@@ -48,7 +48,7 @@ type JiraConnectionV10 struct {
 	StoryPointField            string    `gorm:"type:varchar(50);" json:"storyPointField"`
 	RemotelinkCommitShaPattern string    `gorm:"type:varchar(255);comment='golang regexp, the first group will be recognized as commit sha, ref https://github.com/google/re2/wiki/Syntax'" json:"remotelinkCommitShaPattern"`
 	Proxy                      string    `json:"proxy"`
-	RateLimit                  int       `comment:"api request rate limt per hour" json:"rateLimit"`
+	RateLimitPerHour           int       `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 func (JiraConnectionV10) TableName() string {
diff --git a/plugins/jira/models/migrationscripts/init_schema.go b/plugins/jira/models/migrationscripts/init_schema.go
index d7403597..1f16aa21 100644
--- a/plugins/jira/models/migrationscripts/init_schema.go
+++ b/plugins/jira/models/migrationscripts/init_schema.go
@@ -86,7 +86,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error {
 				conn.Name = v.Name
 				conn.Endpoint = v.Endpoint
 				conn.Proxy = v.Proxy
-				conn.RateLimit = v.RateLimit
+				conn.RateLimitPerHour = v.RateLimitPerHour
 
 				c := config.GetConfig()
 				encKey := c.GetString("ENCODE_KEY")
@@ -127,7 +127,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error {
 				conn.Name = v.Name
 				conn.Endpoint = v.Endpoint
 				conn.Proxy = v.Proxy
-				conn.RateLimit = v.RateLimit
+				conn.RateLimitPerHour = v.RateLimitPerHour
 
 				c := config.GetConfig()
 				encKey := c.GetString("ENCODE_KEY")
diff --git a/plugins/jira/tasks/api_client.go b/plugins/jira/tasks/api_client.go
index 8824d770..c31eb855 100644
--- a/plugins/jira/tasks/api_client.go
+++ b/plugins/jira/tasks/api_client.go
@@ -44,7 +44,7 @@ func NewJiraApiClient(taskCtx core.TaskContext, connection *models.JiraConnectio
 
 	// create rate limit calculator
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 	}
 	asyncApiClient, err := helper.CreateAsyncApiClient(
 		taskCtx,
diff --git a/plugins/tapd/impl/impl.go b/plugins/tapd/impl/impl.go
index d4709740..43df5152 100644
--- a/plugins/tapd/impl/impl.go
+++ b/plugins/tapd/impl/impl.go
@@ -142,8 +142,8 @@ func (plugin Tapd) PrepareTaskData(taskCtx core.TaskContext, options map[string]
 			return nil, fmt.Errorf("invalid value for `since`: %w", err)
 		}
 	}
-	if connection.RateLimit == 0 {
-		connection.RateLimit = 6000
+	if connection.RateLimitPerHour == 0 {
+		connection.RateLimitPerHour = 6000
 	}
 	tapdApiClient, err := tasks.NewTapdApiClient(taskCtx, connection)
 	if err != nil {
diff --git a/plugins/tapd/models/migrationscripts/archived/tapd_connection.go b/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
index df2b0f34..b8f6eb17 100644
--- a/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
+++ b/plugins/tapd/models/migrationscripts/archived/tapd_connection.go
@@ -36,10 +36,10 @@ type BasicAuth struct {
 }
 
 type RestConnection struct {
-	BaseConnection `mapstructure:",squash"`
-	Endpoint       string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
-	Proxy          string `mapstructure:"proxy" json:"proxy"`
-	RateLimit      int    `comment:"api request rate limt per hour" json:"rateLimit"`
+	BaseConnection   `mapstructure:",squash"`
+	Endpoint         string `mapstructure:"endpoint" validate:"required" json:"endpoint"`
+	Proxy            string `mapstructure:"proxy" json:"proxy"`
+	RateLimitPerHour int    `comment:"api request rate limt per hour" json:"rateLimit"`
 }
 
 type TapdConnection struct {
diff --git a/plugins/tapd/tasks/api_client.go b/plugins/tapd/tasks/api_client.go
index 59d205c1..dc38b27d 100644
--- a/plugins/tapd/tasks/api_client.go
+++ b/plugins/tapd/tasks/api_client.go
@@ -46,7 +46,7 @@ func NewTapdApiClient(taskCtx core.TaskContext, connection *models.TapdConnectio
 
 	// create rate limit calculator
 	rateLimiter := &helper.ApiRateLimitCalculator{
-		UserRateLimitPerHour: connection.RateLimit,
+		UserRateLimitPerHour: connection.RateLimitPerHour,
 	}
 	asyncApiClient, err := helper.CreateAsyncApiClient(
 		taskCtx,