Skip to content

Jira Integration: fix for handling jira api v3 with ADF#4756

Merged
SuperQ merged 1 commit intoprometheus:mainfrom
holger-waschke:jira/v3_adf
Jan 30, 2026
Merged

Jira Integration: fix for handling jira api v3 with ADF#4756
SuperQ merged 1 commit intoprometheus:mainfrom
holger-waschke:jira/v3_adf

Conversation

@holger-waschke
Copy link
Contributor

@holger-waschke holger-waschke commented Nov 19, 2025

this resolves #4585

Description has to be of type any in the struct to be able to parse it as string (for api v2) or as rawJSON (for api v3)
It´s not enough to parse it as a JSON in a string and then do the JSON Encoding. This results in incorrect encoding:

wrong:
"{\"fields\":{\"description\":\"\\n{\\n \\\"version\\\": 1,\\n \\\"type\\\": \\\"doc\\\",\\n \\\"content\\\": [\\n {\\n \\\"type\\\": \\\"paragraph\\\",\\n \\\"content\\\": [\\n {\\n \\\"type\\\": \\\"text\\\",\\n \\\"text\\\": \\\"Hello \\\"\\n },\\n {\\n \\\"type\\\": \\\"text\\\",\\n \\\"text\\\": \\\"world\\\",\\n \\\"marks\\\": [\\n {\\n \\\"type\\\": \\\"strong\\\"\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n}\",\"issuetype\":{\"name\":\"Alarm\"},\"labels\":[\"ALERT{d95eb188699ae81ab...+133 more"

Correctly encoded with rawjson:
"{\"fields\":{\"description\":{\"version\":1,\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Hello \"},{\"type\":\"text\",\"text\":\"world\",\"marks\":[{\"type\":\"strong\"}]}]}]},\"issuetype\":{\"name\":\"Alarm\"},\"labels\":[\"ALERT{2e7c5964e80dc3b92649fe2211e1f0f55704739f6f819c606ae0176296f0c91a}\"],\"project\":{\"key\":\"ASPMIG\"},\"summary\":\"[ABNAHME][FIRING:1]newsystem_test_aler0t \"}}\n"

tested both ways. rendered trough a template

{{ define "jira.v3.descriptioncustom" }}
{
  "version": 1,
  "type": "doc",
  "content": [
    {
      "type": "paragraph",
      "content": [
        {
          "type": "text",
          "text": "Hello "
        },
        {
          "type": "text",
          "text": "world",
          "marks": [
            {
              "type": "strong"
            }
          ]
        }
      ]
    }
  ]
}

or direct in the config

receivers:
- name: jira_asp_alarm
  jira_configs:
  - project: ASPMIG
    issue_type: Alarm
    description:
      enable_update: true
      template: |-
        {
        "version": 1,
        "type": "doc",
        "content": [
          {
            "type": "paragraph",
            "content": [
              {
                "type": "text",
                "text": "Hello "
              },
              {
                "type": "text",
                "text": "world",
                "marks": [
                  {
                    "type": "strong"
                  }
                  ]
                }
              ]
            }
          ]
        }
    summary:
      enable_update: true

both work.

ToDo:
Provide a description v3 template which all labels included.

Signed-off-by: Holger Waschke <waschkester@gmail.com>
@gillesB
Copy link

gillesB commented Jan 13, 2026

Thank you for the work on this pull request. From a user perspective, this bug fix would be very valuable.
Could you share whether there’s an expected timeline for merging, or if any additional steps are required?

@SoloJacobs SoloJacobs self-requested a review January 30, 2026 17:04
Copy link
Contributor

@SoloJacobs SoloJacobs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@SuperQ SuperQ merged commit f7a37c8 into prometheus:main Jan 30, 2026
7 checks passed
@SoloJacobs SoloJacobs mentioned this pull request Jan 30, 2026
SuperQ added a commit that referenced this pull request Feb 2, 2026
* [ENHANCEMENT] docs(opsgenie): Fix description of `api_url` field. #4908
* [ENHANCEMENT] docs(slack): Document missing app configs. #4871
* [ENHANCEMENT] docs: Fix `max-silence-size-bytes`. #4805
* [ENHANCEMENT] docs: Update expr for `AlertmanagerClusterFailedToSendAlerts` to exclude value 0. #4872
* [ENHANCEMENT] docs: Use matchers for inhibit rules examples. #4131
* [ENHANCEMENT] docs: add notification integrations. #4901
* [ENHANCEMENT] docs: update `slack_config` attachments documentation links. #4802
* [ENHANCEMENT] docs: update description of filter query params in openapi doc. #4810
* [ENHANCEMENT] provider: Reduce lock contention. #4809
* [FEATURE] slack: Add support for top-level text field in slack notification. #4867
* [FEATURE] smtp: Add support for authsecret from file. #3087
* [FEATURE] smtp: Customize the ssl/tls port support (#4757). #4818
* [FEATURE] smtp: Enhance email notifier configuration validation. #4826
* [FEATURE] telegram: Add `chat_id_file` configuration parameter. #4909
* [FEATURE] telegram: Support global bot token. #4823
* [FEATURE] webhook: Support templating in url fields. #4798
* [FEATURE] wechat: Add config directive to pass api secret via file. #4734
* [FEATURE] provider: Implement per alert limits. #4819
* [BUGFIX] Allow empty `group_by` to override parent route. #4825
* [BUGFIX] Set `spellcheck=false` attribute on silence filter input. #4811
* [BUGFIX] jira: Fix for handling api v3 with ADF. #4756
* [BUGFIX] jira: Prevent hostname corruption in cloud api url replacement. #4892
---------

Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
Signed-off-by: Ben Kochie <superq@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

jira v3 description is not Atlassian ADF format

5 participants