Both sides previous revisionPrevious revisionNext revision | Previous revision |
77:process_feedback_jira [2021/08/12 11:13] – [Basic Authentication] fnpk | 77:process_feedback_jira [2024/02/15 00:00] (current) – external edit 127.0.0.1 |
---|
</stages-config> | </stages-config> |
</code> | </code> |
| |
| ===== Authentication ===== |
| |
| There are different ways to authenticate with Jira Server. Most common are Basic Authentication and Personal Access Tokens (Bearer). |
| |
==== Basic Authentication ==== | ==== Basic Authentication ==== |
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]]. | 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]]. |
| |
==== Supported Jira fields ==== | ==== Personal Access Tokens (Bearer) Authentication (Since Stages 7.9.10.0 / 7.10.1.0) ==== |
| |
| Since Jira 8.14 it is possible to [[https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html|generate Personal Access Tokens]] to authenticate with Jira. |
| |
| <code xml> |
| <property name="authentication.type" value="bearer" /> |
| <property name="bearer" value="NTkzMzQ1ODIyNTAwOtuxKyI7Q2dPtIVtSTr7+Viwg6H3" /> |
| </code> |
| |
| ==== OAuth 2.0 Password Grant (Optional) ==== |
| |
| **This is a very special use case for a specific API gateway and not a standard Jira feature.** |
| |
| We support also OAuth 2.0 with Password Grant. To configure it there are different properties: |
| |
| <code xml> |
| <property name="authentication.type" value="oauth20" /> |
| <property name="authentication.oauth20.granttype" value="password" /> |
| |
| <!-- URL to your OAuth 2.0 Token Endpiont --> |
| <property name="authentication.oauth20.tokenendpoint" value="https://example.com/oauth/token" /> |
| |
| <!-- OAuth 2.0 Client Id --> |
| <property name="authentication.oauth20.clientid" value="" /> |
| |
| <!-- OAuth 2.0 Client Secret --> |
| <property name="authentication.oauth20.clientsecret" value="" /> |
| |
| <!-- OAuth 2.0 Scope --> |
| <property name="authentication.oauth20.scope" value="" /> |
| |
| <!-- OAuth 2.0 (technical) user --> |
| <property name="authentication.oauth20.user" value="" /> |
| |
| <!-- OAuth 2.0 password --> |
| <property name="authentication.oauth20.password" value="" /> |
| </code> |
| |
| ==== No Authentication (Since Stages 7.9.10.0 / 7.10.1.0) ==== |
| |
| **This is a very special use case for a specific API gateway and not a standard Jira feature.** |
| |
| If there should be no authentication with Jira you can configure it. You probably want to set a [[#custom-header-optional|Custom Header]]. |
| |
| <code xml> |
| <property name="authentication.type" value="none" /> |
| </code> |
| |
| ===== Supported Jira fields ===== |
* Description: ''targetType=""'' (Empty) | * Description: ''targetType=""'' (Empty) |
* Text Field (single line): ''targetType=""'' (Empty) | * Text Field (single line): ''targetType=""'' (Empty) |
* URL Field: ''targetType=""'' (Empty) | * URL Field: ''targetType=""'' (Empty) |
* Select List (single choice): ''targetType="selectList-singleChoice"'' | * Select List (single choice): ''targetType="selectList-singleChoice"'' |
| * Select List (multiple choices): ''targetType="selectList-multipleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
* User Picker (single user): ''targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) | * User Picker (single user): ''targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
| * User Picker (multiple users): ''targetType="user-multipleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0, Only Jira Server, not Jira Cloud) |
* Assignee: ''target="assignee" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) | * Assignee: ''target="assignee" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
* Reporter: ''target="reporter" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) | * Reporter: ''target="reporter" targetType="user-singleChoice"'' (Only Jira Server, not Jira Cloud) |
* Components: ''target="components" targetType="components"'' | * Components: ''target="components" targetType="components"'' |
| * Radio Buttons: ''targetType="radio"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Checkboxes: ''targetType="checkbox"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Labels: ''targetType="labels"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Affects Versions: ''target="versions" targetType="version-multipleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Fix Versions: ''target="fixVersions" targetType="version-multipleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Version Picker (single version): ''targetType="version-singleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| * Version Picker (multiple versions): ''targetType="version-multipleChoice"'' (Since Stages 7.9.10.0 / 7.10.1.0) |
| |
**Be aware**: | **Be aware**: |
Other Jira fields are not supported at the moment. | Other Jira fields are not supported at the moment. |
| |
==== Custom Endpoint (Optional) ==== | ===== 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> | </code> |
| |
==== Proxy (Optional) ==== | ===== Proxy (Optional) ===== |
| |
You can specify a proxy server. | You can specify a proxy server. |
</code> | </code> |
| |
==== OAuth 2.0 Password Grant (Optional) ==== | |
| |
We support also OAuth 2.0 with Password Grant. To configure it there are different properties: | |
| |
<code xml> | |
<property name="authentication.type" value="oauth20" /> | |
<property name="authentication.oauth20.granttype" value="password" /> | |
| |
<!-- URL to your OAuth 2.0 Token Endpiont --> | |
<property name="authentication.oauth20.tokenendpoint" value="https://example.com/oauth/token" /> | |
| |
<!-- OAuth 2.0 Client Id --> | |
<property name="authentication.oauth20.clientid" value="" /> | |
| |
<!-- OAuth 2.0 Client Secret --> | |
<property name="authentication.oauth20.clientsecret" value="" /> | |
| |
<!-- OAuth 2.0 Scope --> | |
<property name="authentication.oauth20.scope" value="" /> | |
| |
<!-- OAuth 2.0 (technical) user --> | |
<property name="authentication.oauth20.user" value="" /> | |
| |
<!-- OAuth 2.0 password --> | |
<property name="authentication.oauth20.password" value="" /> | |
</code> | |
| |
==== Custom Header (Optional) ==== | ===== Custom Header (Optional) ===== |
| |
You can set custom header to the Jira-REST-Requests. | You can set custom header to the Jira-REST-Requests. |
</code> | </code> |
| |
==== Troubleshooting ==== | ===== 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. | 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. |