Use GitHub actions to create Jira tickets whenever an issue or pull request is created. Supports arbitrary additional fields in the API call to Jira.
To provide a URL and credentials you can use the gajira-login
action, which will write a config file this action can read.
Alternatively, you can set some environment variables:
JIRA_BASE_URL
- e.g.https://my-org.atlassian.net
. The URL for your Jira instance.JIRA_API_TOKEN
- e.g.iaJGSyaXqn95kqYvq3rcEGu884TCbMkU
. An access token.JIRA_USER_EMAIL
- e.g.[email protected]
. The email address for the access token.
project
(required) - The project key to create the issue in, e.g.'TEST'
issuetype
(required) - The issue type for the ticket, e.g.'Bug'
summary
(required) - The title of the issue, e.g.'A summary'
description
(required) - The body of the issue, e.g.'A description of the issue'
extraFields
- A JSON map as a string, specifying any additional fields to set in the create issue payload. See the Jira REST API for more details of the available fields, e.g.'{"parent": {"key": "FOO-23"}, "labels": ["github", "bug"], "customfield_10071": "from-github-action"}'
issue
- The key of the issue created, e.g. TEST-23
The following examples are valid steps
for a particular job in a workflow; to see how to integrate them into a fully worked example, refer to the documentation.
Using atlassian/gajira-login
and GitHub secrets for authentication:
- name: Login
uses: atlassian/[email protected]
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
- name: Create
id: create
uses: tomhjp/[email protected]
with:
project: FOO
issuetype: "Bug"
summary: "The summary"
description: "The description"
- name: Log
run: echo "Created issue ${{ steps.create.outputs.issue }}"
Using environment variables for authentication, and the github
context to populate some additional fields:
- name: Create
id: create
uses: tomhjp/[email protected]
with:
project: FOO
issuetype: "Bug"
summary: "${{ github.event.issue.title }} #${{ github.event.issue.number }}"
description: "${{ github.event.issue.body }}\n\nCreated from GitHub Action"
extraFields: '{"fixVersions": [{"name": "TBD"}], "customfield_20000": "product", "customfield_40000": "${{ github.event.issue.html_url }}"}'
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}