Atlassian JIRA

Create JIRA Issue

The purpose of this example is to create a JIRA Issuearrow-up-right when a Vulnerability is created in AttackForge, and to update AttackForge to assign the JIRA Issue Key against the Vulnerability.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

Action 1 - Create JIRA Issue

  • Method: POST

  • URL: https://<YOUR-JIRA>/rest/api/2/issue

  • Headers:

    • Key = Accept; Type = Value; Value = application/json

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_auth

  • Request Script:

  • Response Script:

Action 2 - Update AF Vuln with JIRA Issue Key

  • Method: PUT

  • URL: <defined in Request Script>

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-Key; Type = Secret; Value = af_auth

  • Request Script:

  • Response Script:

Update JIRA Issue

The purpose of this example is to update a JIRA Issuearrow-up-right when a Vulnerability is updated in AttackForge.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Action 1 - Get JIRA Issue

  • Method: GET

  • URL: <defined in Request Script>

  • Headers:

    • Key = Accept; Type = Value; Value = application/json

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_auth

  • Request Script:

  • Response Script:

Action 2 - Update JIRA Issue

  • Method: <defined in Request Script>

  • URL: <defined in Request Script>

  • Headers:

    • <defined in Request Script>

  • Request Script:

  • Response Script:

JIRA Issue Retest -> Update Vuln to Ready for Retest

The purpose of this example is when a JIRA Issue is assigned the 'Retest' status - the matching vulnerability in AttackForge is also assigned as retest.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Action 1 - Get Vulnerability

  • Method: GET

  • URL: https://demo.attackforge.dev/api/ss/vulnerabilities

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = x_user_key

  • Request Script:

  • Response Script:

Action 2 - Update Vulnerability

  • Method: PUT

  • URL: https://demo.attackforge.dev/api/ss/vulnerability/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = x_user_key

  • Request Script:

  • Response Script:

Close JIRA Issue

The purpose of this example is when a vulnerability is closed in AttackForge, the matching JIRA Issue is also closed.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

Action 1 - Get JIRA Issue

  • Method: GET

  • URL: https://cybersechub.atlassian.net/rest/api/3/issue/{issueIdOrKey}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 2 - Get JIRA Transitions

  • Method: GET

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/transitions

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 3 - Close JIRA Issue

  • Method: POST

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/transitions

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Re-Open JIRA Issue

The purpose of this example is when a vulnerability is re-opened in AttackForge, the matching JIRA Issue is also re-opened.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

Action 1 - Get JIRA Issue

  • Method: GET

  • URL: https://cybersechub.atlassian.net/rest/api/3/issue/{issueIdOrKey}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 2 - Get JIRA Transitions

  • Method: GET

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/transitions

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 3 - Re-Open JIRA Issue

  • Method: POST

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/transitions

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

JIRA Issue Comment Created -> Create Vuln Remediation Note

The purpose of this example is when a comment is created on a JIRA Issue, a remediation note is created on the matching vulnerability.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Action 1 - Get Vulnerability

  • Method: GET

  • URL: https://demo.attackforge.dev/api/ss/vulnerabilities

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = x_user_key

  • Request Script:

  • Response Script:

Action 2 - Create Remediation Note

  • Method: POST

  • URL: https://demo.attackforge.dev/api/ss/vulnerability/{id}/remediationNote

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = x_user_key

  • Request Script:

  • Response Script:

Create JIRA Issue Comment

The purpose of this example is when a remediation note is created on a vulnerability, a comment is also created on the matching JIRA Issue.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

Action 1 - Get Vulnerability

  • Method: GET

  • URL: https://demo.attackforge.dev/api/ss/vulnerability/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = x_user_key

  • Request Script:

  • Response Script:

Action 2 - Get JIRA Comments

  • Method: GET

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/comment

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 3 - Create JIRA Issue Comment

  • Method: POST

  • URL: https://cybersechub.atlassian.net/rest/api/2/issue/{issueIdOrKey}/comment

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Upload Vulnerability Evidence to JIRA Issue

The purpose of this example is when a evidence file is uploaded to a vulnerability, the file is also uploaded to the matching JIRA Issue.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

Action 1 - Get Vulnerability

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/vulnerability/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_user_key

  • Request Script:

  • Response Script:

Action 2 - Check if JIRA Issue Id exists

  • Script:

Action 3 - Get JIRA Issue

  • Method: GET

  • URL: https://{{jira_hostname}}/rest/api/3/issue/{issueIdOrKey}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 4 - Check if File is already uploaded to JIRA Issue

  • Script:

Action 5 - Download Evidence File

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/vulnerability/{vulnId}/evidence/{fileStorageName}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_user_key

  • Options:

    • Download Response: Yes

  • Request Script:

  • Response Script:

Action 6 - Upload File to JIRA

  • Method: POST

  • URL: https://{{jira_hostname}}/rest/api/3/issue/{issueIdOrKey}/attachments

  • Headers:

    • Key = X-Atlassian-Token; Type = Value; Value = no-check

    • Key = Accept; Type = Value; Value = application/json

    • Key = Content-Type; Type = Value; Value = multipart/form-data

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Upload JIRA Attachment to Vulnerability Evidence

The purpose of this example is when an attachment is uploaded to a JIRA Issue, the file is also uploaded to the matching vulnerability in AttackForge.

This example Flow can be downloaded from our Flows GitHub Repositoryarrow-up-right and imported into your AttackForge.

Initial Set Up

Important: This example requires access to the AttackForge Self-Service API and AttackForge Flows

  • JIRA WebHooks

    • Configure 'Attachment Created' web hookarrow-up-right from https://<your-jira-tenant>.atlassian.net/plugins/servlet/webhooks#

    • Append ?issueKey={issue.key} to the end of the trigger url to ensure that your flow can identify which JIRA Issue the attachment belongs to

  • HTTP Trigger

    • Method: POST

    • Authentication: None

  • Secrets:

Action 1 - Validate Message from JIRA

  • Script:

Action 2 - Get Vulnerability

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/vulnerability/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_user_key

  • Request Script:

  • Response Script:

Action 3 - Check if Attachment is already uploaded to Vulnerability

  • Script:

Action 4 - Get JIRA Attachment Download Link

  • Method: GET

  • URL: https://{{jira_hostname}}/rest/api/3/attachment/content/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Authorization; Type = Secret; Value = jira_api_key

  • Request Script:

  • Response Script:

Action 5 - Download JIRA Attachment

  • Method: GET

  • Options:

    • Download Response: Yes

  • Request Script:

  • Response Script:

Action 6 - Upload File to Vulnerability

  • Method: POST

  • URL: https://{{af_hostname}}/api/ss/vulnerability/{id}/evidence

  • Headers:

    • Key = Content-Type; Type = Value; Value = multipart/form-data

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_user_key

  • Request Script:

  • Response Script:

Last updated