feat: PAT support for jira server in a hacky way
diff --git a/plugins/jira/api/connection.go b/plugins/jira/api/connection.go
index 8efb8d4..221d5b4 100644
--- a/plugins/jira/api/connection.go
+++ b/plugins/jira/api/connection.go
@@ -48,13 +48,17 @@
 	if err != nil {
 		return nil, err
 	}
+	headers := map[string]string{
+		"Authorization": fmt.Sprintf("Basic %v", connection.GetEncodedToken()),
+	}
+	if connection.Username == "_BEARER_TOKEN_" {
+		headers["Authorization"] = fmt.Sprintf("Bearer %v", connection.Password)
+	}
 	// test connection
 	apiClient, err := helper.NewApiClient(
 		context.TODO(),
 		connection.Endpoint,
-		map[string]string{
-			"Authorization": fmt.Sprintf("Basic %v", connection.GetEncodedToken()),
-		},
+		headers,
 		3*time.Second,
 		connection.Proxy,
 		basicRes,
diff --git a/plugins/jira/api/proxy.go b/plugins/jira/api/proxy.go
index 4d767f6..5dd204c 100644
--- a/plugins/jira/api/proxy.go
+++ b/plugins/jira/api/proxy.go
@@ -35,12 +35,16 @@
 	if err != nil {
 		return nil, err
 	}
+	headers := map[string]string{
+		"Authorization": fmt.Sprintf("Basic %v", connection.GetEncodedToken()),
+	}
+	if connection.Username == "_BEARER_TOKEN_" {
+		headers["Authorization"] = fmt.Sprintf("Bearer %v", connection.Password)
+	}
 	apiClient, err := helper.NewApiClient(
 		context.TODO(),
 		connection.Endpoint,
-		map[string]string{
-			"Authorization": fmt.Sprintf("Basic %v", connection.GetEncodedToken()),
-		},
+		headers,
 		30*time.Second,
 		connection.Proxy,
 		basicRes,
diff --git a/plugins/jira/tasks/api_client.go b/plugins/jira/tasks/api_client.go
index a354fec..3b27c0e 100644
--- a/plugins/jira/tasks/api_client.go
+++ b/plugins/jira/tasks/api_client.go
@@ -19,9 +19,10 @@
 
 import (
 	"fmt"
-	"github.com/apache/incubator-devlake/errors"
 	"net/http"
 
+	"github.com/apache/incubator-devlake/errors"
+
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/helper"
 	"github.com/apache/incubator-devlake/plugins/jira/models"
@@ -32,6 +33,9 @@
 	headers := map[string]string{
 		"Authorization": fmt.Sprintf("Basic %v", connection.GetEncodedToken()),
 	}
+	if connection.Username == "_BEARER_TOKEN_" {
+		headers["Authorization"] = fmt.Sprintf("Bearer %v", connection.Password)
+	}
 
 	apiClient, err := helper.NewApiClient(taskCtx.GetContext(), connection.Endpoint, headers, 0, connection.Proxy, taskCtx)
 	if err != nil {