Jira
整合版本:41.0
設定 Jira,以便與 Google Security Operations 搭配使用
建立 API 權杖
從 Atlassian 帳戶建立 API 權杖:
- 登入 Atlassian 帳戶。
- 按一下「Create API Token」(建立 API 憑證)。
- 在隨即顯示的對話方塊中,輸入簡潔好記的權杖標籤,然後按一下「建立」。
- 按一下「複製到剪貼簿」,然後將權杖貼到安全的地方儲存。
在 Google SecOps 中設定 Jira 整合
如需在 Google SecOps 中設定整合功能的詳細操作說明,請參閱「設定整合功能」。
整合參數
請使用下列參數設定整合:
參數顯示名稱 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
執行個體名稱 | 字串 | 不適用 | 否 | 您要設定整合的執行個體名稱。 |
說明 | 字串 | 不適用 | 否 | 執行個體的說明。 |
API 根目錄 | 字串 | https://{jira_address} | 是 | Jira 執行個體的地址。 |
使用者名稱 | 字串 | 不適用 | 是 | 用於連線至 Jira 的使用者名稱。 |
API 權杖 | 密碼 | 不適用 | 是 | 在 Jira 控制台中產生的權杖。 注意:如果使用使用者名稱和密碼組合進行內部部署驗證,這個參數可用來包含「密碼」字串。 |
驗證 SSL | 核取方塊 | 已取消勾選 | 否 | 如果 Jira 連線需要 SSL 驗證,請勾選這個核取方塊。 |
遠端執行 | 核取方塊 | 已取消勾選 | 否 | 勾選這個欄位,即可遠端執行設定的整合項目。勾選後,系統會顯示選取遠端使用者 (服務專員) 的選項。 |
動作
新增註解
說明
撰寫問題的註解,是記錄問題其他元素的有效方式,也能與團隊成員互動。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 問題的 issue key。 範例:ABC-123 |
註解 | 字串 | 不適用 | 是 | 要新增至問題的註解內容。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
comment_id | 不適用 | 不適用 |
JSON 結果
N/A
指派問題
說明
將問題指派給特定使用者。Jira 使用者名稱可以是姓名或電子郵件地址。對於新的 Jira API,動作會嘗試根據使用者電子郵件尋找指派對象的相符項目,以指派問題,然後嘗試使用 displayName 欄位。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 問題的 issue key。 |
指派對象 | 字串 | 不適用 | 是 | 問題的新指派對象。 |
Jira 使用者名稱 | 字串 | 不適用 | 否 | 動作發起者的 Jira 使用者名稱。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
成功 | True/False | success:False |
建立快訊問題
說明
將事件指派給特定群組。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
專案金鑰 | 字串 | 不適用 | 是 | 要在其中建立問題的專案金鑰。 |
摘要 | 字串 | 不適用 | 是 | 問題摘要。 |
問題類型 | 字串 | 不適用 | 是 | 問題類型。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
issue_key | 不適用 | 不適用 |
JSON 結果
{
"comment":
{
"total": 0,
"startAt": 0,
"comments": [],
"maxResults": 0
},
"Creator":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1user",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"aggregatetimeestimate": null,
"labels": ["Label1"],
"aggregatetimespent": null,
"watches":
{
"self": "",
"watchCount": 1,
"isWatching": false
},
"Assignee":
{
"displayName": "user2",
"name": "user2",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user2",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": ""
},
"lastViewed": "2019-01-22T10:14:02.910+0200",
"issuelinks": [],
"worklog":
{
"worklogs": [],
"total": 0,
"startAt": 0,
"maxResults": 20
},
"aggregateprogress":
{
"progress": 0,
"total": 0
},
"priority":
{
"iconUrl": "",
"self": "",
"name": "Medium",
"id": "3"
},
"votes":
{
"hasVoted": false,
"self": "", "votes": 0
},
"workratio": -1,
"fixVersions": [],
"environment": null,
"timespent": null,
"attachment":
[{
"mimeType": "binary/octet-stream",
"created": "2018-06-19T15:23:07.369+0300",
"self": "",
"Author":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"filename": "file.rar",
"content": "",
"id": "0",
"size": 0
}],
"progress": {"progress": 0,
"total": 0},
"duedate": null,
"status":
{
"statusCategory":
{
"name": "Done",
"self": "",
"id": 3,
"key": "done",
"colorName": "green"
},
"description": "",
"self": "",
"iconUrl": "",
"id": "0",
"name": "DONE"
},
"updated": "2018-09-18T10:02:06.347+0300",
"subtasks": [],
"description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
"reporter":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"timeoriginalestimate": null,
"aggregatetimeoriginalestimate": null,
"created": "2018-06-19T15:23:13.701+0300",
"versions": [],
"resolutiondate": "2018-09-18T10:02:06.340+0300",
"summary": "Sample issue",
"project":
{
"name": "Project 1",
"self": "",
"projectTypeKey": "software",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"key": "PR",
"id": "0"
},
"timetracking": {},
"components": [],
"issuetype":
{
"name": "Task",
"self": "",
"iconUrl": "",
"subtask": false,
"avatarId": 10318,
"id": "10002",
"description": "A task that needs to be done."
},
"security": null,
"resolution":
{
"id": "10000",
"self": "",
"description": "Work has been completed on this issue.",
"name": "Done"
},
"timeestimate": null
}
建立問題
說明
在專案中建立問題。Jira 使用者名稱可以是名稱或郵件地址。 對於新的 Jira API,動作會嘗試根據使用者電子郵件尋找指派對象的相符項目,以指派問題,然後嘗試使用 displayName 欄位。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
專案金鑰 | 字串 | 不適用 | 是 | 要在其中建立問題的專案金鑰。 |
摘要 | 字串 | 不適用 | 是 | 問題摘要。 |
說明 | 字串 | 不適用 | 是 | 問題說明。 |
問題類型 | 字串 | 不適用 | 是 | 問題類型。 |
指派對象 | 字串 | 不適用 | 否 | 問題的新指派對象。 |
Jira 使用者名稱 | 字串 | 不適用 | 否 | 動作發起者的 Jira 使用者名稱。 |
元件 | 字串 | 不適用 | 否 | 問題的「元件」欄位。 此參數接受以逗號分隔資料值的字串。 |
標籤 | 字串 | 不適用 | 否 | 問題的「元件」欄位。 此參數接受以逗號分隔資料值的字串。 |
自訂欄位 | JSON | 不適用 | 否 | 指定包含所有欄位和值的 JSON 物件,這些欄位和值會在建立問題時使用。 注意:這個參數具有優先權,所有欄位都會以這個參數提供的值覆寫。 範例:{"field":"value"} |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
issue_key | 不適用 | 不適用 |
JSON 結果
N/A
刪除問題
說明
刪除問題。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 要刪除的問題的鍵。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
成功 | True/False | success:False |
JSON 結果
N/A
下載附件
說明
取得問題鍵並下載所有附件。如果其中一個是 EML 檔案,請一併下載附件。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 問題的鍵。 |
下載路徑 | 字串 | 不適用 | 否 | 儲存附件的路徑。 |
將附件下載到案件總覽頁面 | 核取方塊 | 已取消勾選 | 否 | 啟用後,這項動作會將 Jira 問題附件下載到目前的 Google SecOps 快訊案件牆。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 結果
{
"comment":
{
"total": 0,
"startAt": 0,
"comments": [],
"maxResults": 0
},
"creator":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1user",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"aggregatetimeestimate": null,
"labels": ["Label1"],
"aggregatetimespent": null,
"watches":
{
"self": "",
"watchCount": 1,
"isWatching": false
},
"assignee":
{
"displayName": "user2",
"name": "user2",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user2","active": true,
"timeZone": "Asia/Jerusalem",
"accountId": ""
},
"lastViewed": "2019-01-22T10:14:02.910+0200",
"issuelinks": [],
"worklog":
{
"worklogs": [],
"total": 0,
"startAt": 0,
"maxResults": 20
},
"aggregateprogress":
{
"progress": 0,
"total": 0
},
"Priority":
{
"iconUrl": "",
"self": "",
"name": "Medium",
"id": "3"
},
"Votes":
{
"hasVoted": false,
"self": "",
"votes": 0
},
"workratio": -1,
"fixVersions": [],
"environment": null,
"timespent": null,
"attachment":
[{
"mimeType": "binary/octet-stream",
"created": "2018-06-19T15:23:07.369+0300",
"self": "",
"author":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"filename": "file.rar",
"content": "",
"id": "0",
"size": 0
}],
"progress":
{
"progress": 0,
"total": 0
},
"duedate": null,
"status":
{
"statusCategory":
{
"name": "Done",
"self": "",
"id": 3,
"key": "done",
"colorName": "green"
},
"description": "",
"self": "",
"iconUrl": "",
"id": "0",
"name": "DONE"
},
"updated": "2018-09-18T10:02:06.347+0300",
"subtasks": [],
"description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
"reporter":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"timeoriginalestimate": null,
"aggregatetimeoriginalestimate": null,
"created": "2018-06-19T15:23:13.701+0300",
"versions": [],
"resolutiondate": "2018-09-18T10:02:06.340+0300",
"summary": "Sample issue",
"project":
{
"name": "Project 1",
"self": "",
"projectTypeKey": "software",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"key": "PR",
"id": "0"
},
"timetracking": {},
"components": [],
"issuetype":
{
"name": "Task",
"self": "",
"iconUrl": "",
"subtask": false,
"avatarId": 10318,
"id": "10002",
"description": "A task that needs to be done."
},
"security": null,
"resolution":
{
"id": "10000",
"self": "",
"description": "Work has been completed on this issue.",
"name": "Done"
},
"timeestimate": null
}
取得問題
說明
依鍵取得問題的詳細資料。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 要擷取的問題鍵,以半形逗號分隔。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
issues_details_list | True/False | issues_details_list:False |
JSON 結果
{
"comment":
{
"total": 0,
"startAt": 0,
"comments": [],
"maxResults": 0
},
"creator":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1user",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"aggregatetimeestimate": null,
"labels": ["Label1"],
"aggregatetimespent": null,
"watches":
{
"self": "",
"watchCount": 1,
"isWatching": false
},
"assignee":
{
"displayName": "user2",
"name": "user2",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user2","active": true,
"timeZone": "Asia/Jerusalem",
"accountId": ""
},
"lastViewed": "2019-01-22T10:14:02.910+0200",
"issuelinks": [],
"worklog":
{
"worklogs": [],
"total": 0,
"startAt": 0,
"maxResults": 20
},
"aggregateprogress":
{
"progress": 0,
"total": 0
},
"Priority":
{
"iconUrl": "",
"self": "",
"name": "Medium",
"id": "3"
},
"Votes":
{
"hasVoted": false,
"self": "",
"votes": 0
},
"workratio": -1,
"fixVersions": [],
"environment": null,
"timespent": null,
"attachment":
[{
"mimeType": "binary/octet-stream",
"created": "2018-06-19T15:23:07.369+0300",
"self": "",
"author":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"filename": "file.rar",
"content": "",
"id": "0",
"size": 0
}],
"progress":
{
"progress": 0,
"total": 0
},
"duedate": null,
"status":
{
"statusCategory":
{
"name": "Done",
"self": "",
"id": 3,
"key": "done",
"colorName": "green"
},
"description": "",
"self": "",
"iconUrl": "",
"id": "0",
"name": "DONE"
},
"updated": "2018-09-18T10:02:06.347+0300",
"subtasks": [],
"description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
"reporter":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"timeoriginalestimate": null,
"aggregatetimeoriginalestimate": null,
"created": "2018-06-19T15:23:13.701+0300",
"versions": [],
"resolutiondate": "2018-09-18T10:02:06.340+0300",
"summary": "Sample issue",
"project":
{
"name": "Project 1",
"self": "",
"projectTypeKey": "software",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"key": "PR",
"id": "0"
},
"timetracking": {},
"components": [],
"issuetype":
{
"name": "Task",
"self": "",
"iconUrl": "",
"subtask": false,
"avatarId": 10318,
"id": "10002",
"description": "A task that needs to be done."
},
"security": null,
"resolution":
{
"id": "10000",
"self": "",
"description": "Work has been completed on this issue.",
"name": "Done"
},
"timeestimate": null
}
列出問題
說明
搜尋問題。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
專案名稱 | 字串 | 不適用 | 否 | 要搜尋的專案名稱,以半形逗號分隔。 |
摘要 | 字串 | 不適用 | 否 | 要篩選的摘要。 |
說明 | 字串 | 不適用 | 否 | 要篩選的說明。 |
問題類型 | 字串 | 錯誤 | 否 | 要篩選的問題類型。 |
優先順序 | 字串 | 不適用 | 否 | 要篩選的優先順序。 |
建立來源 | 字串 | 不適用 | 否 | 要篩選的最早建立日期。 格式:YYYY/MM/DD。 |
從以下版本更新 | 字串 | 不適用 | 否 | 要篩選的最早更新日期。 格式:YYYY/MM/DD。 |
指派對象 | 字串 | 不適用 | 否 | 要篩選的指派對象名稱,以半形逗號分隔。 |
檢舉者 | 字串 | 不適用 | 否 | 要篩選的檢舉者名稱,以半形逗號分隔。 |
狀態 | 字串 | 不適用 | 否 | 要篩選的狀態,以半形逗號分隔。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
問題 | True/False | issues:False |
JSON 結果
[ "PR-123", "PR-124"]
乒乓
說明
確認使用者透過裝置連線至 Jira。
參數
這項動作沒有輸入參數。
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
成功 | True/False | success:False |
JSON 結果
N/A
更新問題
說明
更新問題。對於新的 Jira API,動作會嘗試根據使用者電子郵件尋找指派對象,然後根據 displayName 欄位指派問題。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 要更新的問題鍵。 |
狀態 | 字串 | 不適用 | 否 | 指定相關的轉移名稱,將這個問題轉移至新的所需狀態。 |
摘要 | 字串 | 不適用 | 否 | 問題的新摘要。 |
說明 | 字串 | 不適用 | 否 | 問題的新說明。 |
問題類型 | 字串 | 不適用 | 否 | 問題的新類型。 |
指派對象 | 字串 | 不適用 | 否 | 問題的新指派對象。 |
Jira 使用者名稱 | 字串 | 不適用 | 否 | 動作發起者的 Jira 使用者名稱。 |
元件 | 字串 | 不適用 | 否 | 問題的「元件」欄位。 此參數接受以逗號分隔資料值的字串。 |
自訂欄位 | JSON | 不適用 | 否 | 指定包含所有欄位和值的 JSON 物件,這些欄位和值會在建立問題時使用。 注意:這個參數具有優先權,所有欄位都會以這個參數提供的值覆寫。 範例:{"field":"value"} |
標籤 | 字串 | 不適用 | 否 | 問題的「元件」欄位。 此參數接受以逗號分隔資料值的字串。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
成功 | True/False | Success:False |
JSON 結果
{
"comment":
{
"total": 0,
"startAt": 0,
"comments": [],
"maxResults": 0
},
"creator":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1user",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"aggregatetimeestimate": null,
"labels": ["Label1"],
"aggregatetimespent": null,
"watches":
{
"self": "",
"watchCount": 1,
"isWatching": false
},
"assignee":
{
"displayName": "user2",
"name": "user2",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user2",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": ""
},
"lastViewed": "2019-01-22T10:14:02.910+0200",
"issuelinks": [],
"Worklog":
{
"worklogs": [],
"total": 0,
"startAt": 0,
"maxResults": 20
},
"aggregateprogress":
{
"progress": 0,
"total": 0
},
"Priority":
{
"iconUrl": "",
"self": "",
"name": "Medium",
"id": "3"
},
"votes":
{
"hasVoted": false,
"self": "",
"votes": 0
},
"workratio": -1,
"fixVersions": [],
"environment": null,
"timespent": null,
"attachment":
[{
"mimeType": "binary/octet-stream",
"created": "2018-06-19T15:23:07.369+0300",
"self": "",
"author":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"filename": "file.rar",
"content": "",
"id": "0",
"size": 0
}],
"progress":
{
"progress": 0,
"total": 0
},
"duedate": null,
"status":
{
"statusCategory":
{
"name": "Done",
"self": "",
"id": 3,
"key": "done",
"colorName": "green"
},
"description": "",
"self": "",
"iconUrl": "",
"id": "0",
"name": "DONE"
},
"updated": "2018-09-18T10:02:06.347+0300",
"subtasks": [],
"description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
"reporter":
{
"displayName": "user1",
"name": "user1",
"self": "",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"emailAddress": "john_doe@example.com",
"key": "user1",
"active": true,
"timeZone": "Asia/Jerusalem",
"accountId": "0"
},
"timeoriginalestimate": null,
"aggregatetimeoriginalestimate": null,
"created": "2018-06-19T15:23:13.701+0300",
"versions": [],
"resolutiondate": "2018-09-18T10:02:06.340+0300",
"summary": "Sample issue",
"project":
{
"name": "Project 1",
"self": "",
"projectTypeKey": "software",
"avatarUrls":
{
"24x24": "",
"16x16": "",
"48x48": "",
"32x32": ""
},
"key": "PR",
"id": "0"
},
"timetracking": {},
"components": [],
"issuetype":
{
"name": "Task",
"self": "",
"iconUrl": "",
"subtask": false,
"avatarId": 10318,
"id": "10002",
"description": "A task that needs to be done."
},
"security": null,
"resolution":
{
"id": "10000",
"self": "",
"description": "Work has been completed on this issue.",
"name": "Done"
},
"timeestimate": null
}
上傳附件
說明
在問題中新增附件。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
問題鍵 | 字串 | 不適用 | 是 | 檔案路徑。 |
檔案路徑 | 字串 | 不適用 | 是 | 要上傳的檔案路徑,以半形逗號分隔。 |
執行時間
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 結果
N/A
連結問題
說明
連結 Jira 中的多個問題。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
Inward Issue ID | 字串 | 不適用 | 是 | 指定以半形逗號分隔的向內問題 ID 清單。 舉例來說,如果關係類型為「Blocks」,UI 中就會顯示這個問題,以及「blocked by」關係。 |
外向問題 ID | CSV | 不適用 | 是 | 指定向外問題 ID。 舉例來說,如果關係類型為「Blocks」,則 UI 中會顯示這個問題,且關係為「blocks」。 |
關係類型 | 字串 | 模塊 | 是 | 指定用於連結多個問題的關係類型。如要查看所有可用的關係類型,請使用「列出關係類型」動作。 |
執行時間
這項操作不會對實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 結果
N/A
案件總覽
結果類型 | 值 / 說明 | 類型 |
---|---|---|
輸出訊息* | 動作不應失敗,也不應停止執行應對手冊: 如果某些問題回報 201 狀態碼 (is_success = true):「Successfully linked issue "{source issue}" with the following issues in Jira: {destination issues}」(已成功將「{source issue}」問題連結至 Jira 中的下列問題:{destination issues})。 如果系統針對某個問題回報 404 狀態碼和「問題不存在」錯誤 (is_success=true):「動作無法在 Jira 中找到下列目的地問題:{找不到的 Jira 問題}」。 如果所有問題都回報 404 狀態碼和「問題不存在」錯誤 (is_success=false):「None of the destination issues were found in Jira.」(在 Jira 中找不到任何目的地問題)。 動作應會失敗並停止執行應對手冊: 如果系統回報嚴重錯誤,例如憑證錯誤、無法連線至伺服器或其他錯誤:「執行動作時發生錯誤」。原因:{0}''.format(error.Stacktrace) 如果找不到來源問題:「執行動作時發生錯誤」。原因:Jira 中找不到來源問題「{source issue}」。請檢查拼字」。 如果狀態碼為 404,且至少有一個不是「問題不存在」錯誤:「執行動作時發生錯誤」。原因:{error messages}。 |
一般 |
列出關係類型
說明
列出 Jira 中可用的關係類型。
參數
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
篩選鍵 | DDL | 請選取一項 可能的值:
|
否 | 指定用於篩選 {項目類型} 的鍵。 |
篩選邏輯 | DDL | 未指定 可能的值:
|
否 | 指定要套用哪些篩選器邏輯。篩選邏輯會根據「篩選鍵」參數中提供的值運作。 |
篩選條件值 | 字串 | 不適用 | 否 | 指定篩選器中應使用的值。 如果選取「等於」,動作會嘗試在結果中尋找完全相符的項目。 如果選取「包含」,動作會嘗試找出包含指定子字串的結果。 如果這個參數未提供任何內容,系統就不會套用篩選條件。篩選邏輯會根據「篩選鍵」參數中提供的值運作。 |
要傳回的記錄數量上限 | 整數 | 50 | 否 | 指定要傳回的記錄數。如未提供任何內容,這項動作會傳回 50 筆記錄。 |
執行時間
這項操作不會對實體執行。
動作執行結果
指令碼執行結果
指令碼結果名稱 | 值選項 | 範例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 結果
[{
"id": "10000",
"name": "Blocks",
"inward": "is blocked by",
"outward": "blocks",
"self": "http://172.30.201.69:8080/rest/api/2/issueLinkType/10000"
}]
案件總覽
結果類型 | 值 / 說明 | 類型 |
---|---|---|
輸出訊息* | 動作不應失敗,也不應停止執行應對手冊: 如果資料可用 (is_success = true):「Successfully found relation types for the provided criteria in Jira」(已在 Jira 中成功找到符合所提供條件的關係類型)。 如果沒有資料 (is_success=false):「在 Jira 中,系統未根據提供的條件找到任何關係類型」 如果「篩選器值」參數為空 (is_success=true):「篩選器未套用,因為『篩選器值』參數的值為空。」 動作應會失敗並停止執行應對手冊: 如果「篩選鍵」參數設為「選取『一』」,且「篩選邏輯」設為「等於」或「包含」:執行「{動作名稱}」動作時發生錯誤。原因:您需要從「篩選鍵」參數中選取欄位。 如果提供的「要傳回的記錄數上限」值無效:「執行動作『{動作名稱}』時發生錯誤。原因:為「要傳回的記錄數上限」提供的值無效:。請提供正數。 如果發生嚴重錯誤 (例如憑證錯誤、無法連線至伺服器或回報其他錯誤):「執行動作『{動作名稱}』時發生錯誤。原因:{0}''.format(error.Stacktrace) |
一般 |
案件總覽表格 | 表格名稱:Available Relation 資料表資料欄:
|
一般 |
搜尋使用者
在 Jira 中搜尋使用者。
實體
這項操作不會對實體執行。
動作輸入內容
如要設定動作,請使用下列參數:
參數 | |
---|---|
User Email Addresses |
選填
以半形逗號分隔的電子郵件地址清單,可供傳回使用者。 |
User Names |
選填
以半形逗號分隔的使用者名稱清單,用於傳回使用者。 |
Project |
選填
要在其中搜尋電子郵件地址的專案名稱。如果提供,則只會傳回 |
動作輸出內容
動作輸出類型 | |
---|---|
案件總覽附件 | 不適用 |
案件總覽連結 | 不適用 |
案件訊息牆表格 | 不適用 |
補充資訊表格 | 不適用 |
JSON 結果 | 可用 |
指令碼結果 | 可用 |
指令碼結果
指令碼結果名稱 | 值 |
---|---|
is_success | True/False |
JSON 結果
[
{
"Entity": "example",
"EntityResult": {
"_resource": "user?accountId={0}",
"_options": {
"server": "https://siemplify.atlassian.net",
"auth_url": "/rest/auth/1/session",
"context_path": "/",
"rest_path": "api",
"rest_api_version": "2",
"agile_rest_path": "agile",
"agile_rest_api_version": "1.0",
"verify": false,
"resilient": true,
"async": false,
"async_workers": 5,
"client_cert": null,
"check_update": false,
"delay_reload": 0,
"headers": {
"Cache-Control": "no-cache",
"Content-Type": "application/json",
"X-Atlassian-Token": "no-check"
}
},
"_session": "<jira.resilientsession.ResilientSession object>",
"_base_url": "{server}/rest/{rest_path}/{rest_api_version}/{path}",
"raw": {
"self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
"accountId": "example-account-id",
"accountType": "atlassian",
"emailAddress": "example.user",
"avatarUrls": {
"48x48": "https://example.com"
},
"displayName": "Example",
"active": true,
"timeZone": "UTC",
"locale": "en_US"
},
"self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
"accountId": "example-account-id",
"accountType": "atlassian",
"emailAddress": "example.user",
"avatarUrls": "<jira.resources.PropertyHolder object>",
"displayName": "Example",
"active": true,
"timeZone": "UTC",
"locale": "en_US"
}
}
]
案件總覽
這個動作會提供下列輸出訊息:
輸出訊息 | 訊息說明 |
---|---|
|
動作成功。 |
Error executing action "Search Users".
Reason: ERROR_REASON |
動作失敗。 檢查伺服器的連線、輸入參數或憑證。 |
連接器
Jira 連接器
說明
將 Jira 中的問題擷取至 Google SecOps。
在 Google SecOps 中設定 Jira 連接器
如需在 Google SecOps 中設定連接器的詳細操作說明,請參閱設定連接器。
連接器參數
請使用下列參數設定連接器:
參數 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
DeviceProductField | 字串 | device_product | 是 | 用來判斷裝置產品的欄位名稱。 |
EventClassId | 字串 | 名稱 | 否 | 用於判斷事件名稱 (子類型) 的欄位名稱。 |
PythonProcessTimeout | 字串 | 60 | 是 | 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 |
API 根層級 | 字串 | https://{jira_address} | 是 | Jira 執行個體的 API 根目錄。 |
使用者名稱 | 字串 | 不適用 | 是 | 不適用 |
API 權杖 | 密碼 | 不適用 | 是 | 在 Jira 控制台中產生的權杖。 注意:如果使用使用者名稱和密碼組合進行內部部署驗證,這個參數可用來包含「密碼」字串 |
倒轉天數 | 整數 | 5 | 否 | 要從過去幾天擷取快訊。 |
每個週期最多可購買的票券數量 | 整數 | 10 | 否 | 在一個連結器週期內擷取及處理的票證數量上限。 |
專案名稱 | 字串 | 不適用 | 否 | 以半形逗號分隔的專案名稱。 |
問題狀態 | 字串 | 不適用 | 否 | 以半形逗號分隔問題的狀態。 |
指派對象 | 字串 | 不適用 | 否 | 以半形逗號分隔的使用者全名。 |
問題類型 | 字串 | 不適用 | 否 | 以半形逗號分隔的問題類型。 |
問題優先順序 | 字串 | 不適用 | 否 | 以半形逗號分隔問題優先順序。 |
問題元件 | 字串 | 不適用 | 否 | 以半形逗號分隔的問題元件。 |
Proxy 伺服器位址 | 字串 | 不適用 | 否 | 要使用的 Proxy 伺服器位址。 |
Proxy 使用者名稱 | 字串 | 不適用 | 否 | 用於驗證的 Proxy 使用者名稱。 |
Proxy 密碼 | 密碼 | 不適用 | 否 | 用於驗證的 Proxy 密碼。 |
環境欄位名稱 | 字串 | "" | 否 | 說明儲存環境名稱的欄位名稱。 如果找不到環境欄位,環境就是預設環境。 |
環境規則運算式模式 | 字串 | .* | 否 | 要對「環境欄位名稱」欄位中的值執行的 regex 模式。 預設值為 .*,可擷取所有內容並傳回未變更的值。 用於允許使用者透過規則運算式邏輯操控環境欄位。 如果 regex 模式為空值或空白,或環境值為空值,最終環境結果就是預設環境。 |
連接器規則
Proxy 支援
連接器支援 Proxy。
動態清單和封鎖清單
連接器僅支援 Jira 內特定標籤的動態許可清單和封鎖清單規則。
工作
同步結案工作
說明
如果相應的 Google SecOps 快訊已結案,請關閉 Jira 中的案件。
參數
參數顯示名稱 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
API 根層級 | 字串 | https://{jira_address} | 是 | Jira 執行個體 API 根網址。 |
使用者名稱 | 字串 | 不適用 | 是 | 用於連線至 Jira 執行個體的使用者名稱。 |
API 權杖 | 密碼 | 不適用 | 是 | 在 Jira 控制台中產生的權杖。 注意:如果使用使用者名稱和密碼組合進行內部部署驗證,這個參數可用來包含「密碼」字串 |
專案名稱 | 字串 | 以半形逗號分隔的專案名稱 | 是 | 工作應監控的 Jira 專案名稱,以半形逗號分隔。 |
最多可回溯的天數 | 整數 | 1 | 是 | 可回溯同步處理票證狀態的天數上限。 |
同步處理留言工作
說明
在 Google SecOps 案件和對應的 Jira 票證之間同步處理留言。同步作業是雙向的,也就是從 Google SecOps 到 Jira,以及從 Jira 到 Google SecOps。
這項工作僅支援使用 Jira
標記的 Google SecOps 案件。
工作建立留言時,會套用前置字元。如果 Google SecOps 使用者在 Google SecOps 案件中留言,這項作業會使用 Chronicle 註解前置字元參數,在對應的 Jira 票證中建立並同步處理使用者註解。
新增這項功能有兩個目的:
- 掌握情報:
- 防止作業新增的註解再次同步到另一端,造成迴圈。
參數
參數顯示名稱 | 類型 | 預設值 | 為必填項目 | 說明 |
---|---|---|---|---|
API 根層級 | 字串 | https://{jira_address} | 是 | Jira 執行個體 API 根網址。 |
使用者名稱 | 字串 | 不適用 | 是 | 用於連線至 Jira 執行個體的使用者名稱。 |
API 權杖 | 密碼 | 不適用 | 是 | 在 Jira 控制台中產生的權杖。 注意:如果使用使用者名稱和密碼組合進行內部部署驗證,這個參數可用來包含「密碼」字串 |
專案名稱 | 字串 | 以半形逗號分隔的專案名稱 | 是 | 工作應監控的 Jira 專案名稱 (以半形逗號分隔)。 |
最多可回溯的天數 | 整數 | 1 | 是 | 可回溯同步處理票證狀態的天數上限。 |
Google SecOps 註解前置字串 | 字串 | Google SecOps 的優點: | 是 | 同步工作新增至為 Jira 票證建立的留言的前置字串。 |
Jira 留言前置字元 | 字串 | Jira 留言同步處理工作: | 是 | 同步工作新增至 Google SecOps 快訊案件註解的前置字串。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。