Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
75:process_feedback_jira [2020/04/09 09:26] fnpk75:process_feedback_jira [2024/02/15 00:00] (current) – external edit 127.0.0.1
Line 32: Line 32:
       <!-- 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.
Line 41: Line 39:
       <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.
Line 66: Line 53:
         <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.
Line 108: Line 117:
 <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:
Line 136: Line 144:
 <!-- 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.
Line 146: Line 153:
 <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.
 +