Chapter 35. Jira Update Issue Sink
Update fields of an existing issue in Jira. The Kamelet expects the following headers to be set:
-
issueKey/ce-issueKey: as the issue code in Jira. -
issueTypeName/ce-issueTypeName: as the name of the issue type (example: Bug, Enhancement). -
issueSummary/ce-issueSummary: as the title or summary of the issue. -
issueAssignee/ce-issueAssignee: as the user assigned to the issue (Optional). -
issuePriorityName/ce-issuePriorityName: as the priority name of the issue (example: Critical, Blocker, Trivial) (Optional). -
issueComponents/ce-issueComponents: as list of string with the valid component names (Optional). -
issueDescription/ce-issueDescription: as the issue description (Optional).
The issue description can be set from the body of the message or the issueDescription/ce-issueDescription in the header, however the body takes precedence.
35.1. Configuration Options Copy linkLink copied to clipboard!
The following table summarizes the configuration options available for the jira-update-issue-sink Kamelet:
| Property | Name | Description | Type | Default | Example |
|---|---|---|---|---|---|
| jiraUrl * | Jira URL | The URL of your instance of Jira | string |
| |
| password * | Password | The password or the API Token to access Jira | string | ||
| username * | Username | The username to access Jira | string |
Fields marked with an asterisk (*) are mandatory.
35.2. Dependencies Copy linkLink copied to clipboard!
At runtime, the jira-update-issue-sink Kamelet relies upon the presence of the following dependencies:
- camel:core
- camel:jackson
- camel:jira
- camel:kamelet
- mvn:com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.4.redhat-00001
35.3. Usage Copy linkLink copied to clipboard!
This section describes how you can use the jira-update-issue-sink.
35.3.1. Knative Sink Copy linkLink copied to clipboard!
You can use the jira-update-issue-sink Kamelet as a Knative sink by binding it to a Knative object.
jira-update-issue-sink-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: jira-update-issue-sink-binding
spec:
source:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueKey"
value: "MYP-163"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueTypeName"
value: "Bug"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueSummary"
value: "The issue summary"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issuePriorityName"
value: "Low"
sink:
ref:
kind: Channel
apiVersion: messaging.knative.dev/v1
name: mychannel
properties:
jiraUrl: "jira server url"
username: "username"
password: "password"
35.3.1.1. Prerequisite Copy linkLink copied to clipboard!
Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
35.3.1.2. Procedure for using the cluster CLI Copy linkLink copied to clipboard!
-
Save the
jira-update-issue-sink-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the sink by using the following command:
oc apply -f jira-update-issue-sink-binding.yaml
35.3.1.3. Procedure for using the Kamel CLI Copy linkLink copied to clipboard!
Configure and run the sink by using the following command:
kamel bind --name jira-update-issue-sink-binding timer-source?message="The new comment"\&period=60000 --step insert-header-action -p step-0.name=issueKey -p step-0.value=MYP-170 --step insert-header-action -p step-1.name=issueTypeName -p step-1.value=Story --step insert-header-action -p step-2.name=issueSummary -p step-2.value="This is a story 123" --step insert-header-action -p step-3.name=issuePriorityName -p step-3.value=Highest jira-update-issue-sink?jiraUrl="jira url"\&username="username"\&password="password"
This command creates the KameletBinding in the current namespace on the cluster.
35.3.2. Kafka Sink Copy linkLink copied to clipboard!
You can use the jira-update-issue-sink Kamelet as a Kafka sink by binding it to a Kafka topic.
jira-update-issue-sink-binding.yaml
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
name: jira-update-issue-sink-binding
spec:
source:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic
steps:
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueKey"
value: "MYP-163"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueTypeName"
value: "Bug"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issueSummary"
value: "The issue summary"
- ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: insert-header-action
properties:
name: "issuePriorityName"
value: "Low"
sink:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1alpha1
name: jira-update-issue-sink
properties:
jiraUrl: "jira server url"
username: "username"
password: "password"
35.3.2.1. Prerequisites Copy linkLink copied to clipboard!
Ensure that you’ve installed the AMQ Streams operator in your OpenShift cluster and created a topic named my-topic in the current namespace. Make also sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you’re connected to.
35.3.2.2. Procedure for using the cluster CLI Copy linkLink copied to clipboard!
-
Save the
jira-update-issue-sink-binding.yamlfile to your local drive, and then edit it as needed for your configuration. Run the sink by using the following command:
oc apply -f jira-update-issue-sink-binding.yaml
35.3.2.3. Procedure for using the Kamel CLI Copy linkLink copied to clipboard!
Configure and run the sink by using the following command:
kamel bind --name jira-update-issue-sink-binding timer-source?message="The new comment"\&period=60000 --step insert-header-action -p step-0.name=issueKey -p step-0.value=MYP-170 --step insert-header-action -p step-1.name=issueTypeName -p step-1.value=Story --step insert-header-action -p step-2.name=issueSummary -p step-2.value="This is a story 123" --step insert-header-action -p step-3.name=issuePriorityName -p step-3.value=Highest jira-update-issue-sink?jiraUrl="jira url"\&username="username"\&password="password"
This command creates the KameletBinding in the current namespace on the cluster.
35.4. Kamelet source file Copy linkLink copied to clipboard!
https://github.com/openshift-integration/kamelet-catalog/jira-update-issue-sink.kamelet.yaml