Both sides previous revisionPrevious revisionNext revision | Previous revision |
75:process_feedback_jira [2020/04/09 09:26] – fnpk | 75:process_feedback_jira [2024/02/15 00:00] (current) – external edit 127.0.0.1 |
---|
<!-- The summary field will always be available and is automatically mapped to the Jira "summary" field --> | <!-- The summary field will always be available and is automatically mapped to the Jira "summary" field --> |
| |
<!-- | <!-- |
The user will be asked to enter the following text fields. All text fields are optional. | See common feedback documentation |
- The "ident" must be unique and is used to identify the right translation property. | |
- The "type" defines if the field is a multi-line text ("text") or a single line string ("string"). | |
- The "target" defines the id of the custom field in Jira (e.g. "customfield_10101"). | - The "target" defines the id of the custom field in Jira (e.g. "customfield_10101"). |
- Optional: The targetType defines the type of the Jira field. Supported Jira fields see below. | - Optional: The targetType defines the type of the Jira field. Supported Jira fields see below. |
<attributes> | <attributes> |
<attribute ident="description" type="text" target="description" /> | <attribute ident="description" type="text" target="description" /> |
<!-- The following fields could be enabled if you want the users to provide more data with every feedback item: --> | |
<!-- | |
<attribute ident="annual_savings" type="string" target="customfield_10100" /> | |
<attribute ident="priority" type="string" target="customfield_10101" /> | |
<attribute ident="component" type="string" target="components" targetType="components" /> | |
--> | |
</attributes> | </attributes> |
| |
<!-- | <!-- |
You can map element specify information to your Jira issue. These sources are available: | See common feedback documentation |
- elementUrl e.g. https://stages.example.com/stages/index.html#/workspace/200/_vv/(process/activity/_wUV9sBbNHr-aicWx33VsQA) | |
- workspaceName e.g. "Software Engineering" | |
- workspacePath e.g. "Company | Software" | |
- creatorFullname "John Doe" | |
- creatorUsername "jdoe" | |
The "target" defines the id for the custom field in Jira (e.g. "customfield_10101"). | The "target" defines the id for the custom field in Jira (e.g. "customfield_10101"). |
Optional: The targetType defines the type of the Jira field. Supported Jira fields see below. | Optional: The targetType defines the type of the Jira field. Supported Jira fields see below. |
<attribute source="creatorUsername" target="customfield_10108" /> | <attribute source="creatorUsername" target="customfield_10108" /> |
</system-attribute-mappings> | </system-attribute-mappings> |
| |
| <!-- |
| See common feedback documentation |
| The "target" defines the id for the custom field in Jira (e.g. "customfield_10101"). |
| Optional: The targetType defines the type of the Jira field. Supported Jira fields see below. |
| --> |
| <custom-attribute-mappings> |
| <attribute value="Stages" target="customfield_10200" /> |
| </custom-attribute-mappings> |
</host> | </host> |
</feedback-system> | </feedback-system> |
</stages-config> | </stages-config> |
| </code> |
| |
| ==== Basic Authentication ==== |
| |
| You need credentials for a (technical) user who is allowed to create issues in the Jira project. |
| |
| <code xml> |
| <property name="authentication.type" value="basic" /> |
| <property name="user" value="user" /> |
| <property name="password" value="secret" /> |
</code> | </code> |
| |
==== Supported Jira fields ==== | === Jira Server === |
| * The ''user'' and ''password'' are the normal username and password of the user. |
| * [[https://confluence.atlassian.com/enterprise/disabling-basic-authentication-1044776464.html|Basic authentication must not be deactivated]] |
| === Jira Cloud === |
| In Jira cloud there are no usernames. The ''username'' is the mail address (e.g. ''user@example.com''). The **password is a API-Token** and not the password of the user. You can create a Token in your [[https://id.atlassian.com/manage-profile/security/api-tokens|Atlassian Account Management]]. |
| |
* Description: ''targetType=_ckgedit_QUOT__ckgedit>'' (Empty) * Text Field (single line): ''targetType=_ckgedit_QUOT__ckgedit>'' (Empty) | ==== Supported Jira fields ==== |
* Text Field (multi line): ''targetType=_ckgedit_QUOT__ckgedit>'' (Empty) * URL Field: ''targetType=_ckgedit_QUOT__ckgedit>'' (Empty) | * Description: ''targetType=""'' (Empty) |
| * Text Field (single line): ''targetType=""'' (Empty) |
| * Text Field (multi line): ''targetType=""'' (Empty) |
| * URL Field: ''targetType=""'' (Empty) |
* Select List (single choice): ''targetType="selectList-singleChoice"'' | * Select List (single choice): ''targetType="selectList-singleChoice"'' |
* User Picker (single user): ''targetType="user-singleChoice"'' | * User Picker (single user): ''targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
* Assignee: ''targetType="user-singleChoice"'' | * Assignee: ''target="assignee" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
* Reporter: ''targetType="user-singleChoice"'' | * Reporter: ''target="reporter" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
* Components: ''targetType="components"'' | * Components: ''target="components" targetType="components"'' |
| |
**Be aware**: | **Be aware**: |
| * If you choose **Select** or **Component** then the user entered values must be configured in Jira. Otherwise the ticket creation will fail. |
* If you choose **Select** or **Component** then the user entered values must be configured in Jira. Otherwise the ticket creation will fail. | * If you choose **User Picker**, **Assignee** or **Reporter** then the users must be vald Jira user. Otherwise the ticket creation will fail. |
* If you choose **User Picker**, **Assignee** or **Reporter** then the users must be vald Jira user. Otherwise the ticket creation will fail. | * To set the **Reporter** field it is [[https://community.atlassian.com/t5/Answers-Developer-Questions/Re-Assigning-a-reporter-when-creating-an-issue-with-rest/qaq-p/475645/comment-id/13300#M13300|mandatory to grant "Modify Reporter" to the technical user]]. Otherwise the ticket creation will fail. |
* To set the **Reporter** field it is [[https://community.atlassian.com/t5/Answers-Developer-Questions/Re-Assigning-a-reporter-when-creating-an-issue-with-rest/qaq-p/475645/comment-id/13300#M13300|mandatory to grant "Modify Reporter" to the technical user]]. Otherwise the ticket creation will fail. | |
| |
Other Jira fields are not supported at the moment. | Other Jira fields are not supported at the moment. |
| |
==== Custom Endpoint ==== | ==== Custom Endpoint (Optional) ==== |
| |
If your Jira REST-Endpiont differs from the standard location, you can specify it. If your link to the Jira-API is for example like ''<nowiki>https://api.example.com/example/api/2/issue</nowiki>'' then you have to specify ''<nowiki>https://api.example.com/example/</nowiki>'' as value for this property. | |
| |
| If your Jira REST-Endpiont differs from the standard location, you can specify it. If your link to the Jira-API is for example like ''<nowiki>https://api.example.com/example/api/2/issue</nowiki>'' then you have to specify ''<nowiki>https://api.example.com/example/</nowiki>'' as value for this property. |
<code xml> | <code xml> |
<property name="jira.rest.endpoint" value="https://api.example.com/example/" /> | <property name="jira.rest.endpoint" value="https://api.example.com/example/" /> |
| |
</code> | </code> |
| |
==== Proxy ==== | ==== Proxy (Optional) ==== |
| |
You can specify a proxy server. | You can specify a proxy server. |
<property name="proxy.port" value="3128" /> | <property name="proxy.port" value="3128" /> |
<property name="proxy.hostname" value="proxy.example.com" /> | <property name="proxy.hostname" value="proxy.example.com" /> |
| |
</code> | </code> |
| |
==== OAuth 2.0 Password Grant ==== | ==== OAuth 2.0 Password Grant (Optional) ==== |
| |
We support also OAuth 2.0 with Password Grant. To configure it there are different properties: | We support also OAuth 2.0 with Password Grant. To configure it there are different properties: |
<!-- OAuth 2.0 password --> | <!-- OAuth 2.0 password --> |
<property name="authentication.oauth20.password" value="" /> | <property name="authentication.oauth20.password" value="" /> |
| |
</code> | </code> |
| |
==== Custom Header ==== | ==== Custom Header (Optional) ==== |
| |
You can set custom header to the Jira-REST-Requests. | You can set custom header to the Jira-REST-Requests. |
<property name="jira.rest.customheader.key" value="" /> | <property name="jira.rest.customheader.key" value="" /> |
<property name="jira.rest.customheader.value" value="" /> | <property name="jira.rest.customheader.value" value="" /> |
| |
</code> | </code> |
| |
| ==== Troubleshooting ==== |
| |
| If the username/password settings are not correct or the password is changed on the Jira side, but not in Stages, Jira might lock the account after a few tries. This will result in a "HTTP 403 Forbidden" error in stages.log. |
| |
| In that case, the Jira account needs to be unlocked again. Log into Jira as an administrator and follow these steps: |
| * Click on the Gear icon in the upper right of Jira |
| * Select "User Management" |
| * Find the right user |
| * Click on the "Reset Failed Login Count" link in the "Login Details" column. |
| |