Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions config/setup/en-US/connector.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -616,4 +616,31 @@ POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/n
"enabled": true,
"name": "neo4j"
}
}
POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/jira
{
"id" : "jira",
"created" : "2025-11-15T00:00:00.000000+08:00",
"updated" : "2025-11-15T00:00:00.000000+08:00",
"name" : "Jira Project Connector",
"description" : "Fetch issues, comments, and attachments from Jira projects.",
"category" : "website",
"icon" : "/assets/icons/connector/jira/icon.png",
"tags" : [
"project_management",
"issues",
"atlassian",
"web"
],
"url" : "http://coco.rs/connectors/jira",
"assets" : {
"icons" : {
"default" : "/assets/icons/connector/jira/icon.png"
}
},
"builtin": true,
"processor": {
"enabled": true,
"name": "jira"
}
}
27 changes: 27 additions & 0 deletions config/setup/zh-CN/connector.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -617,4 +617,31 @@ POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/n
"enabled": true,
"name": "neo4j"
}
}
POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/jira
{
"id" : "jira",
"created" : "2025-11-15T00:00:00.000000+08:00",
"updated" : "2025-11-15T00:00:00.000000+08:00",
"name" : "Jira 项目连接器",
"description" : "提取 Jira 项目的问题、评论和附件数据。",
"category" : "website",
"icon" : "/assets/icons/connector/jira/icon.png",
"tags" : [
"project_management",
"issues",
"atlassian",
"web"
],
"url" : "http://coco.rs/connectors/jira",
"assets" : {
"icons" : {
"default" : "/assets/icons/connector/jira/icon.png"
}
},
"builtin": true,
"processor": {
"enabled": true,
"name": "jira"
}
}
128 changes: 128 additions & 0 deletions docs/content.en/docs/references/connectors/jira.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
---
title: "Jira"
weight: 31
---
# Jira Connector

## Register Jira Connector

```shell
curl -XPUT "http://localhost:9000/connector/jira?replace=true" -d '{
"name": "Jira Connector",
"description": "Fetch Jira issues, comments, and attachments from your Jira projects.",
"category": "project_management",
"icon": "/assets/icons/connector/jira/icon.png",
"tags": [
"project",
"issue_tracking",
"agile",
"collaboration"
],
"url": "http://coco.rs/connectors/jira",
"assets": {
"icons": {
"default": "/assets/icons/connector/jira/icon.png"
}
},
"processor": {
"enabled": true,
"name": "jira"
}
}'
```

> Use `jira` as a unique identifier, as it is a builtin connector.

## Use the Jira Connector

The Jira Connector allows you to index issues, comments, and attachments from your Jira projects into your system. Follow these steps to set it up:

### Configure Jira Client

To configure your Jira connection, you need to provide several key parameters. The authentication method differs between Jira Cloud and Jira Data Center/Server.

#### For Jira Cloud
- **endpoint**: The URL of your Jira Cloud instance (e.g., https://your-company.atlassian.net).
- **username**: The email address associated with your Atlassian account.
- **token**: The API Token you generate from your Atlassian account settings (go to https://id.atlassian.com/manage-profile/security/api-tokens).

#### For Jira Data Center and Server
- **endpoint**: The URL of your self-hosted Jira instance (e.g., https://jira.your-domain.com or https://your-domain.com/jira for Apache Jira).
- **token**: The Personal Access Token (PAT) generated from your user profile in Jira. The username field is not required when using a PAT.

#### For Anonymous Access (Public Jira Instances)
- **endpoint**: The URL of the public Jira instance.
- Leave **username** and **token** empty for anonymous access (only works if the Jira instance allows public access).

#### Common Parameters (for all versions)
- **project_key**: The key of the Jira project you want to index (e.g., for a project named "Development", the key might be "DEV").
- **index_comments**: (Optional) A boolean (true or false) to include issue comments in the indexed content. Defaults to false.
- **index_attachments**: (Optional) A boolean (true or false) to index attachments as separate documents. Defaults to false.

### Datasource Configuration

Each datasource has its own sync configuration and Jira settings:

#### Example: Jira Cloud with Basic Authentication
```shell
curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '{
"name": "My Jira Cloud Project",
"type": "connector",
"enabled": true,
"connector": {
"id": "jira",
"config": {
"endpoint": "https://your-company.atlassian.net",
"username": "[email protected]",
"token": "your-jira-api-token",
"project_key": "DEV",
"index_comments": true,
"index_attachments": false
}
},
"sync": {
"enabled": true,
"interval": "5m"
}
}'
```

#### Example: Jira Data Center/Server with Personal Access Token
```shell
curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '{
"name": "My Self-Hosted Jira",
"type": "connector",
"enabled": true,
"connector": {
"id": "jira",
"config": {
"endpoint": "https://jira.your-domain.com",
"token": "your-personal-access-token",
"project_key": "PROJ",
"index_comments": true,
"index_attachments": true
}
},
"sync": {
"enabled": true,
"interval": "10m"
}
}'
```

## Supported Config Parameters for Jira Connector

Below are the configuration parameters supported by the Jira Connector:

### Datasource Config Parameters

| **Field** | **Type** | **Description** |
|------------------------|-----------|--------------------------------------------------------------------------------------------------------------------|
| `endpoint` | `string` | The base URL of your Jira instance (required). Examples: https://company.atlassian.net or https://jira.company.com |
| `username` | `string` | Your Jira username (email for Cloud). Not required for Data Center/Server with PAT or anonymous access. |
| `token` | `string` | Your Jira API Token (Cloud) or Personal Access Token (Data Center/Server). Optional for anonymous access. |
| `project_key` | `string` | The key of the Jira project to index (required). Example: "DEV", "PROJ", "INFRA". |
| `index_comments` | `boolean` | Optional. Set to true to include issue comments in the indexed content. Defaults to false. |
| `index_attachments` | `boolean` | Optional. Set to true to index attachments as separate documents. Defaults to false. |
| `sync.enabled` | `boolean` | Enable/disable syncing for this datasource. |
| `sync.interval` | `string` | Sync interval for this datasource (e.g., "5m", "1h", "30s"). |
1 change: 1 addition & 0 deletions docs/content.en/docs/release-notes/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Information about release notes of Coco Server is provided here.
### 🚀 Features
- feat: neo4j connector #539
- feat: add integrated store #551
- feat: jira connector #567
### 🐛 Bug fix
### ✈️ Improvements
- chore: change the home page to the search page after enabling search #541
Expand Down
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ replace github.com/cihub/seelog => ../vendor/src/github.com/cihub/seelog
require (
code.gitea.io/sdk/gitea v0.22.0
github.com/PuerkitoBio/goquery v1.8.1
github.com/andygrunwald/go-jira v1.16.0
github.com/cihub/seelog v0.0.0-00010101000000-000000000000
github.com/go-sql-driver/mysql v1.9.3
github.com/golang-jwt/jwt v3.2.2+incompatible
Expand Down Expand Up @@ -83,6 +84,7 @@ require (
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/fatih/structs v1.1.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/geoffgarside/ber v1.1.0 // indirect
Expand Down Expand Up @@ -173,6 +175,7 @@ require (
github.com/temoto/robotstxt v1.1.2 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/trivago/tgo v1.0.7 // indirect
github.com/twmb/franz-go v1.18.1 // indirect
github.com/twmb/franz-go/pkg/kadm v1.16.0 // indirect
github.com/twmb/franz-go/pkg/kmsg v1.11.2 // indirect
Expand Down
10 changes: 10 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOL
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
github.com/andygrunwald/go-jira v1.16.0 h1:PU7C7Fkk5L96JvPc6vDVIrd99vdPnYudHu4ju2c2ikQ=
github.com/andygrunwald/go-jira v1.16.0/go.mod h1:UQH4IBVxIYWbgagc0LF/k9FRs9xjIiQ8hIcC6HfLwFU=
github.com/antchfx/htmlquery v1.3.0 h1:5I5yNFOVI+egyia5F2s/5Do2nFWxJz41Tr3DyfKD25E=
github.com/antchfx/htmlquery v1.3.0/go.mod h1:zKPDVTMhfOmcwxheXUsx4rKJy8KEY/PU6eXr/2SebQ8=
github.com/antchfx/xmlquery v1.3.17 h1:d0qWjPp/D+vtRw7ivCwT5ApH/3CkQU8JOeo3245PpTk=
Expand Down Expand Up @@ -111,6 +113,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
Expand Down Expand Up @@ -168,6 +172,7 @@ github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PU
github.com/gocolly/colly v1.2.0 h1:qRz9YAn8FIH0qzgNUw+HT9UN7wm1oF9OBAilwEWpyrI=
github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA=
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI=
github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
Expand Down Expand Up @@ -208,6 +213,7 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/go-github/v74 v74.0.0 h1:yZcddTUn8DPbj11GxnMrNiAnXH14gNs559AsUpNpPgM=
Expand Down Expand Up @@ -442,6 +448,8 @@ github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+F
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
github.com/tmc/langchaingo v0.1.14-0.20250213044659-d3e43b632176 h1:/bCWyXGZRW2gHxG6OOGm6kDuC+DeI828G1Pp96NdaLE=
github.com/tmc/langchaingo v0.1.14-0.20250213044659-d3e43b632176/go.mod h1:vpQ5NOIhpzxDfTZK9B6tf2GM/MoaHewPWM5KXXGh7hg=
github.com/trivago/tgo v1.0.7 h1:uaWH/XIy9aWYWpjm2CU3RpcqZXmX2ysQ9/Go+d9gyrM=
github.com/trivago/tgo v1.0.7/go.mod h1:w4dpD+3tzNIIiIfkWWa85w5/B77tlvdZckQ+6PkFnhc=
github.com/twmb/franz-go v1.18.1 h1:D75xxCDyvTqBSiImFx2lkPduE39jz1vaD7+FNc+vMkc=
github.com/twmb/franz-go v1.18.1/go.mod h1:Uzo77TarcLTUZeLuGq+9lNpSkfZI+JErv7YJhlDjs9M=
github.com/twmb/franz-go/pkg/kadm v1.16.0 h1:STMs1t5lYR5mR974PSiwNzE5TvsosByTp+rKXLOhAjE=
Expand Down Expand Up @@ -573,6 +581,7 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand All @@ -585,6 +594,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
Expand Down
Loading
Loading