Uploaded image for project: 'Jira Software Data Center'
  1. Jira Software Data Center
  2. JSWSERVER-20298

DVCS create incorrect webhook payload URL resulting 415 error

      Issue Summary

      Webhooks creating from the Jira integration with GitHub Enterprise are created with an incorrect URL.

      Previously, Push and Pull webhooks were created using the same URL

      • Push: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync
      • Pull request: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync

      But in 7.13.8 and 8.5.x, the push webhook is being created as an incorrect payload JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/repo/sync resulting in Invalid HTTP response: 415.

      IMPACT ON YOUR INSTANCE

      This bug specifically affects webhook operation (eg. smart commit). DVCS can fallback to the hourly sync to fetch changes from GH/E. However, it means changes can delay up to 1 hour before they got across in Jira.

      Steps to Reproduce

      1. Install Jira 7.13.8
      2. Connect Jira to Github Enterprise

      Expected Results

      Webhook created with the correct payload URL

      <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/sync 
      

      Actual Results

      Webhook created with incorrect payload URL resulting in 415

      <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/repo/sync 
      

      Notes

      This issue affects Jira version released after July 2019

      Workaround

      Remove "/repo" from the payload URL manually, webhook work properly, or by rest API directly to Github:

      1. Grab all webhooks from each repo: 
        curl --location --request GET 'https://api.github.com/repos/<user>/<repo name>/hooks' \
        --header 'Authorization: Basic xxxxxxxxx' \
        

        This will return the following, we are looking for any webhook IDs that have the offending url pattern (/repo) in this case it would be "id": 252018187:

         {
                "type": "Repository",
                "id": 252018187,
                "name": "web",
                "active": true,
                "events": [
                    "push"
                ],
                "config": {
                    "content_type": "form",
                    "insecure_ssl": "0",
                    "url": "https://BASEURL/rest/bitbucket/1.0/repository/1/repo/sync"
                },
                "updated_at": "2020-09-28T18:48:55Z",
                "created_at": "2020-09-28T18:46:41Z",
                "url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187",
                "test_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/test",
                "ping_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/pings",
                "last_response": {
                    "code": 200,
                    "status": "active",
                    "message": "OK"
                }
            }
        
      2. Then we'd make another call to each webhook ID identified with the right URL pattern:
        curl --location --request PATCH 'https://api.github.com/repos/volktronz/test/hooks/252018187' \
        --header 'Authorization: Basic xxxxxxxx' \
        --header 'Content-Type: application/json' \
        --data-raw ' { "config": {
               "url": "https:BASEURL/rest/bitbucket/1.0/repository/1/sync"
                }
         } 
         '

        1. wb.png
          wb.png
          35 kB

            [JSWSERVER-20298] DVCS create incorrect webhook payload URL resulting 415 error

            ali made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 514839 ]
            Ronnie Volkmar made changes -
            Description Original: h3. Issue Summary

            Webhooks creating from the Jira integration with GitHub Enterprise are created with an incorrect URL.

            Previously, Push and Pull webhooks were created using the same URL
             * Push: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync
             * Pull request: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync

            But in 7.13.8 and 8.5.x, the push webhook is being created as an incorrect payload JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/repo/sync resulting in Invalid HTTP response: 415.
            h3. IMPACT ON YOUR INSTANCE

            This bug specifically affects webhook operation (eg. smart commit). DVCS can fallback to the hourly sync to fetch changes from GH/E. However, it means changes can delay up to 1 hour before they got across in Jira.
            h3. Steps to Reproduce
             # Install Jira 7.13.8
             # Connect Jira to Github Enterprise

            h3. Expected Results

            Webhook created with the correct payload URL
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/sync
            {code}
            h3. Actual Results

            Webhook created with incorrect payload URL resulting in 415
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/repo/sync
            {code}
            !wb.png|thumbnail!
            h3. Notes

            This issue affects Jira version released after July 2019
            h3. Workaround

            Remove "/repo" from the payload URL manually, webhook work properly, or by [rest API|https://developer.github.com/v3/repos/hooks/#update-a-repository-webhook] directly to Github:
             # Grab all webhooks from each repo: 
            {code:java}
            curl --location --request GET 'https://api.github.com/repos/&lt;user&gt;/&lt;repo name>/hooks' \
            --header 'Authorization: Basic xxxxxxxxx' \
            {code}
            This will return the following, we are looking for any webhook IDs that have the offending url pattern (/repo) in this case it would be "id": 252018187:
            {code:java}
             {
                    "type": "Repository",
                    "id": 252018187,
                    "name": "web",
                    "active": true,
                    "events": [
                        "push"
                    ],
                    "config": {
                        "content_type": "form",
                        "insecure_ssl": "0",
                        "url": "https://BASEURL/rest/bitbucket/1.0/repository/1/repo/sync"
                    },
                    "updated_at": "2020-09-28T18:48:55Z",
                    "created_at": "2020-09-28T18:46:41Z",
                    "url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187",
                    "test_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/test",
                    "ping_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/pings",
                    "last_response": {
                        "code": 200,
                        "status": "active",
                        "message": "OK"
                    }
                }
            {code}

             # Then we'd make another call to each webhook ID identified with the right URL pattern:
            {code:java}
            curl --location --request PATCH 'https://api.github.com/repos/volktronz/test/hooks/252018187&#39; \
            --header 'Authorization: Basic xxxxxxxx' \
            --header 'Content-Type: application/json' \
            --data-raw ' { "config": {
                   "url": "https:BASEURL/rest/bitbucket/1.0/repository/1/sync"
                    }
             }
             '{code}
            New: h3. Issue Summary

            Webhooks creating from the Jira integration with GitHub Enterprise are created with an incorrect URL.

            Previously, Push and Pull webhooks were created using the same URL
             * Push: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync
             * Pull request: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync

            But in 7.13.8 and 8.5.x, the push webhook is being created as an incorrect payload JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/repo/sync resulting in Invalid HTTP response: 415.
            h3. IMPACT ON YOUR INSTANCE

            This bug specifically affects webhook operation (eg. smart commit). DVCS can fallback to the hourly sync to fetch changes from GH/E. However, it means changes can delay up to 1 hour before they got across in Jira.
            h3. Steps to Reproduce
             # Install Jira 7.13.8
             # Connect Jira to Github Enterprise

            h3. Expected Results

            Webhook created with the correct payload URL
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/sync
            {code}
            h3. Actual Results
            Webhook created with incorrect payload URL resulting in 415
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/repo/sync
            {code}
            !wb.png|thumbnail!
            h3. Notes

            This issue affects Jira version released after July 2019
            h3. Workaround

            Remove "/repo" from the payload URL manually, webhook work properly, or by [rest API|https://developer.github.com/v3/repos/hooks/#update-a-repository-webhook] directly to Github:
             # Grab all webhooks from each repo: 
            {code:java}
            curl --location --request GET 'https://api.github.com/repos/&lt;user&gt;/&lt;repo name>/hooks' \
            --header 'Authorization: Basic xxxxxxxxx' \
            {code}
            This will return the following, we are looking for any webhook IDs that have the offending url pattern (/repo) in this case it would be "id": 252018187:
            {code:java}
             {
                    "type": "Repository",
                    "id": 252018187,
                    "name": "web",
                    "active": true,
                    "events": [
                        "push"
                    ],
                    "config": {
                        "content_type": "form",
                        "insecure_ssl": "0",
                        "url": "https://BASEURL/rest/bitbucket/1.0/repository/1/repo/sync"
                    },
                    "updated_at": "2020-09-28T18:48:55Z",
                    "created_at": "2020-09-28T18:46:41Z",
                    "url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187",
                    "test_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/test",
                    "ping_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/pings",
                    "last_response": {
                        "code": 200,
                        "status": "active",
                        "message": "OK"
                    }
                }
            {code}
             # Then we'd make another call to each webhook ID identified with the right URL pattern:
            {code:java}
            curl --location --request PATCH 'https://api.github.com/repos/volktronz/test/hooks/252018187&#39; \
            --header 'Authorization: Basic xxxxxxxx' \
            --header 'Content-Type: application/json' \
            --data-raw ' { "config": {
                   "url": "https:BASEURL/rest/bitbucket/1.0/repository/1/sync"
                    }
             }
             '{code}
            Ronnie Volkmar made changes -
            Description Original: h3. Issue Summary

            Webhooks creating from the Jira integration with GitHub Enterprise are created with an incorrect URL.

            Previously, Push and Pull webhooks were created using the same URL
            * Push: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync
            * Pull request: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync

            But in 7.13.8 and 8.5.x, the push webhook is being created as an incorrect payload JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/repo/sync resulting in Invalid HTTP response: 415.


            h3. IMPACT ON YOUR INSTANCE
            This bug specifically affects webhook operation (eg. smart commit). DVCS can fallback to the hourly sync to fetch changes from GH/E. However, it means changes can delay up to 1 hour before they got across in Jira.

            h3. Steps to Reproduce
            # Install Jira 7.13.8
            # Connect Jira to Github Enterprise

            h3. Expected Results
            Webhook created with the correct payload URL
            {code}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/sync
            {code}
            h3. Actual Results
            Webhook created with incorrect payload URL resulting in 415
            {code}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/repo/sync
            {code}
            !wb.png|thumbnail!

            h3. Notes
            This issue affects Jira version released after July 2019

            h3. Workaround

            Remove "/repo" from the payload URL manually, webhook work properly.
            New: h3. Issue Summary

            Webhooks creating from the Jira integration with GitHub Enterprise are created with an incorrect URL.

            Previously, Push and Pull webhooks were created using the same URL
             * Push: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync
             * Pull request: JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/sync

            But in 7.13.8 and 8.5.x, the push webhook is being created as an incorrect payload JIRA_BASE_URL/rest/bitbucket/1.0/repository/XXXXXXX/repo/sync resulting in Invalid HTTP response: 415.
            h3. IMPACT ON YOUR INSTANCE

            This bug specifically affects webhook operation (eg. smart commit). DVCS can fallback to the hourly sync to fetch changes from GH/E. However, it means changes can delay up to 1 hour before they got across in Jira.
            h3. Steps to Reproduce
             # Install Jira 7.13.8
             # Connect Jira to Github Enterprise

            h3. Expected Results

            Webhook created with the correct payload URL
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/sync
            {code}
            h3. Actual Results

            Webhook created with incorrect payload URL resulting in 415
            {code:java}
            <BASE_URL>/rest/bitbucket/1.0/repository/<repository-id>/repo/sync
            {code}
            !wb.png|thumbnail!
            h3. Notes

            This issue affects Jira version released after July 2019
            h3. Workaround

            Remove "/repo" from the payload URL manually, webhook work properly, or by [rest API|https://developer.github.com/v3/repos/hooks/#update-a-repository-webhook] directly to Github:
             # Grab all webhooks from each repo: 
            {code:java}
            curl --location --request GET 'https://api.github.com/repos/&lt;user&gt;/&lt;repo name>/hooks' \
            --header 'Authorization: Basic xxxxxxxxx' \
            {code}
            This will return the following, we are looking for any webhook IDs that have the offending url pattern (/repo) in this case it would be "id": 252018187:
            {code:java}
             {
                    "type": "Repository",
                    "id": 252018187,
                    "name": "web",
                    "active": true,
                    "events": [
                        "push"
                    ],
                    "config": {
                        "content_type": "form",
                        "insecure_ssl": "0",
                        "url": "https://BASEURL/rest/bitbucket/1.0/repository/1/repo/sync"
                    },
                    "updated_at": "2020-09-28T18:48:55Z",
                    "created_at": "2020-09-28T18:46:41Z",
                    "url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187",
                    "test_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/test",
                    "ping_url": "https://api.github.com/repos/volktronz/TEST/hooks/252018187/pings",
                    "last_response": {
                        "code": 200,
                        "status": "active",
                        "message": "OK"
                    }
                }
            {code}

             # Then we'd make another call to each webhook ID identified with the right URL pattern:
            {code:java}
            curl --location --request PATCH 'https://api.github.com/repos/volktronz/test/hooks/252018187&#39; \
            --header 'Authorization: Basic xxxxxxxx' \
            --header 'Content-Type: application/json' \
            --data-raw ' { "config": {
                   "url": "https:BASEURL/rest/bitbucket/1.0/repository/1/sync"
                    }
             }
             '{code}
            Cassio Pilla (Inactive) made changes -
            Fix Version/s Original: 8.7.2 [ 91595 ]
            Tomasz Majcher made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 489607 ]
            ali made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 488302 ]
            set-jac-bot made changes -
            ali made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 475601 ]
            ali made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 475095 ]
            ali made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 474009 ]

              Unassigned Unassigned
              vkharisma vkharisma
              Affected customers:
              22 This affects my team
              Watchers:
              29 Start watching this issue

                Created:
                Updated:
                Resolved: