Skip to content

Add webhook delivery method to mailroom

What does this MR do?

Mailroom is a component that constantly listens to configured mailboxes to handle incoming emails and service desk emails. When an email arrives, the component delivers the email content (*.eml file) to the Rails applications for processing. At the moment, mailroom is pushing the email content directly into Redis instance of Sidekiq without going through the middleware layer. This flow creates multiple known issues. In gitlab-com/gl-infra&596 (closed), we are trying to migrate to use webhook instead. With the new mechanism, mailroom processes trigger a HTTP request to a Rails webservice internal endpoint. This endpoint does some preparation stuff and then pushes the email content to Sidekiq in a normal way.

The HTTP requests are authenticated with JWT. The mailroom process generates a JWT token based on a secret fetched from a secret file. Rails internal endpoints uses the same secret to decode the JWT tokens of incoming requests. This practice was applied in Shell, Kas, and Pages before.

This MR adds 4 options to gitlab.rb:

  • incoming_email_delivery_method and service_desk_email_delivery_method: Either sidekiq nor webhook. The default delivery method is Sidekiq. The behavior stays the same.
  • incoming_email_auth_token and service_desk_email_delivery_method (optional): the shared authentication token used for JWT mentioned above.

When the delivery method is configured to webhook, the following things occur in order:

  • Auto-generate auth tokens if the auth token options are not specified
  • Mount those tokens to /opt/gitlab/embedded/service/gitlab-rails/.gitlab_incoming_email_secret and counterpart service_desk version.
  • Symlink those files to working directory of mailroom
  • Set the following options in gitlab.yml:
    • incoming_email.gitlab_url: point to external_url
    • incoming_email.secret_file: hard-coded path to the mounted token
    • service_desk_email.gitlab_url: point to external_url
    • service_desk_email.secret_file: hard-coded path to the mounted token

Testing plan

Test Incoming Email

  • Step 1: Set the following configs in gitlab.rb
gitlab_rails['incoming_email_enabled'] = true
gitlab_rails['incoming_email_address'] = "example+incoming-email-${key}@gmail.com"
gitlab_rails['incoming_email_email'] = "example@gmail.com"
gitlab_rails['incoming_email_password'] = "[REDACTED]"
gitlab_rails['incoming_email_host'] = "imap.gmail.com"
gitlab_rails['incoming_email_port'] = 993
gitlab_rails['incoming_email_ssl'] = true
gitlab_rails['incoming_email_start_tls'] = false
gitlab_rails['incoming_email_delivery_method'] = "webhook"
  • Step 2: Re-configure omnibus.

    • Watch mailroom logs with sudo gitlab-ctl tail mailroom. Confirm that mailroom is working properly.
    • Watch API logs with sudo tail -f /var/log/gitlab/gitlab-rails/api_json.log.
  • Step 3: Access the issues page of a random project. Click at "Email a new issue to this project" link button at the bottom of the page. NOTE: there is a small display bug that this button doesn't show up if there hasn't been any issue yet.

Screen_Shot_2022-02-28_at_17.12.26

  • Step 4: Open gmail.com or any other email client. Send an email to the addressed displayed in the above step.

  • Step 5: Wait for some dozens of seconds. The mailroom logs should consist of the following lines, indicate that the email content is sent via a HTTP request

{"severity":"INFO","time":"2022-02-28T04:48:29.080+00:00","context":{"email":"example@gmail.com","name":"inbox"},"uid":19673,"action":"sending to deliverer","deliverer":"MailRoom::Delivery::Postback","byte_size":4827}
{"severity":"INFO","time":"2022-02-28T04:48:29.117+00:00","delivery_method":"Postback","action":"message pushed","url":"http://gitlab.example/api/v4/internal/mail_room/incoming_email"}

Step 6: API logs should contain the detail of the HTTP request POST /api/v4/internal/mail_room/incoming_email

{"time":"2022-02-28T04:48:29.114Z","severity":"INFO","duration_s":0.01268,"db_duration_s":0.0,"view_duration_s":0.01268,"status":200,"method":"POST","path":"/api/v4/internal/mail_room/incoming_email","params":[{"key":"Delivered-To: example gitlab-instance-0cb319f4-monitoring-1-6j4ehu5u6aahvn37qedcjtthl-issue@gmail.com\r\nReceived: by 2002:a4a:b247:0:0:0:0:0 with SMTP id i7csp1498574ooo;\r\n        Sun, 27 Feb 2022 20:48:25 -0800 (PST)\r\nX-Received: by 2002:a05:6402:90b:b0:412:a7cc:f5f9 with SMTP id g11-20020a056402090b00b00412a7ccf5f9mr17379153edz.136.1646023705308;\r\n        Sun, 27 Feb 2022 20:48:25 -0800 (PST)\r\nARC-Seal: i","value":"1; a=rsa-sha256; t=1646023705; cv=none;\r\n        d=google.com; s=arc-20160816;\r\n        b=aNJf8S5XbW5kOxuK7dL9ipe6I0L5vDZegslvzE1UC97Tv02ioSETDpRnl4E4FSfra1\r\n         e3CLzILglfSlb/nitg1ZavQ7Rgq3krkzwHu6lvQSRxySsKNU 5eTSc0oewaih82MG66N\r\n         A4PO41CnyYattCtT/qIf/S3khw3WIAGwg2ZDeWqlaYGCV2U5iMTxZsXI9Y8hkpOgo0mk\r\n         MwHNHEVc5rV01OmhBdGTMPnZW5FoEZJE1WY2t3yJr988kFI2pcbp1likT71oRtqngN6z\r\n         NM9j1dFzTXeoKhS4VluRS1lDUpUdXm/mYbgRBFI/eXSEEamFmBm3ajLKa RWyRGzffUT\r\n         bhxQ==\r\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;\r\n        h=to:subject:message-id:date:from:mime-version:dkim-signature;\r\n        bh=OnW6Fg1l tklQMo8P1DI4 clhKjitPfPp2sBIlwh380=;\r\n        b=XT5T935YgekxzayMA9YJgTiugPBAtbHLK/OVi5 sJjgvJklNR4a0sZA1UDWWPKlkDC\r\n         vR7LTOwzBwPHpfVH1F5RgW382x6puSjL uXBcJmZx2i2Pt9yvqG gMDQ2sC7F4/bX nD\r\n         zggv6id4irkQ41pkIVIZCdZQCN40/LiGrzng8VdzEmrMy 4aUmv1ejiKaObQ5A7lZaq5\r\n         nLXrBa/j1QF7qR3PeHXmZppVFuOCfUXLiIFg0gQ1A2 PYXi Ob/aC8nBz6aIb5wZtYPC\r\n         bUHtJ0z0/DKeLm7i3gncn56LoSMOIuzcGcr7be48I2O7KtTzCzLdwSGiJOb0PHeEsVPP\r\n         bzrA==\r\nARC-Authentication-Results: i=1; mx.google.com;\r\n       dkim=pass header.i=@gitlab.com header.s=google header.b=UhCzkgVE;\r\n       spf=pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=qmnguyen@gitlab.com;\r\n       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=gitlab.com\r\nReturn-Path: <qmnguyen@gitlab.com>\r\nReceived: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])\r\n        by mx.google.com with SMTPS id u14-20020a50a40e000000b0041300885c84sor4352723edb.62.2022.02.27.20.48.25\r\n        for <example gitlab-instance-0cb319f4-monitoring-1-6j4ehu5u6aahvn37qedcjtthl-issue@gmail.com>\r\n        (Google Transport Security);\r\n        Sun, 27 Feb 2022 20:48:25 -0800 (PST)\r\nReceived-SPF: pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;\r\nAuthentication-Results: mx.google.com;\r\n       dkim=pass header.i=@gitlab.com header.s=google header.b=UhCzkgVE;\r\n       spf=pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=qmnguyen@gitlab.com;\r\n       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=gitlab.com\r\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n        d=gitlab.com; s=google;\r\n        h=mime-version:from:date:message-id:subject:to;\r\n        bh=OnW6Fg1l tklQMo8P1DI4 clhKjitPfPp2sBIlwh380=;\r\n        b=UhCzkgVEcR4XOdfK4ysugPZh9tQvj95AE6VrEbatt73UvCEoYaJumeC9hoYSK9e3QS\r\n         Jz ksiqj/i0GHqzFRocv/7RuABIzJb4qrTBz7CTxeSkwLss3K6NKZpYsFa8ylT1RvF5w\r\n         UAtGHL1z6phFP20//vAH3wcnmaMp Rz3pXV c=\r\nX-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n        d=1e100.net; s=20210112;\r\n        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;\r\n        bh=OnW6Fg1l tklQMo8P1DI4 clhKjitPfPp2sBIlwh380=;\r\n        b=xytndnpXpvfuc9cpnX7mtK/JMQYb3139SutS/bhYJt8B7k9o1p6wkBlEOHB7416tOB\r\n         aCbI55OpL88KLPUk3ye0X5e6eFGZIFMtNSWSWpZ08Ds0Tobzgy0f7gGKu2YUVrgmHFl5\r\n         2P45MmFuYVXZ57xEfDMp0nib1TRT8sTJ/dxThVEpLQJ2fr9HII9GzV10ZTKeMHMVnNFD\r\n         gl QInkVTer3K2gsabLyfwLuRH8nDvr6vG1wxG9HZi3Z0XhVukjEcA/yRoyDG jRV8KO\r\n         A/XF4BfNqno3exgJDCH4ckE2XcsdJTdOB6kgFpHDoAToz5bOhdoYu/ikbYlaLQ2X/NLF\r\n         6y2w==\r\nX-Gm-Message-State: AOAM5301znouqMb3EydpKtoRXCh37vbquMgSEZXNOhCLhnhvMzPWVLPb\r\n\tE Ovu8KrODxVuzLPccuipG7KZqVT/eHv 4NhiMsmsYBxkI4=\r\nX-Google-Smtp-Source: ABdhPJyuROtqaD0xKucCe56ZwkQ0a3z k4CUAfDx3hf rGKe30T6uflk9wpwOh4BSVgPY34wJooKbtKVMGgPGNCuJI4=\r\nX-Received: by 2002:aa7:cad3:0:b0:410:b188:a49a with SMTP id\r\n l19-20020aa7cad3000000b00410b188a49amr17834295edt.416.1646023704751; Sun, 27\r\n Feb 2022 20:48:24 -0800 (PST)\r\nMIME-Version: 1.0\r\nFrom: Quang-Minh Nguyen <qmnguyen@gitlab.com>\r\nDate: Mon, 28 Feb 2022 11:48:13  0700\r\nMessage-ID: <CAH=ftaU7b1yJ qZ4Q4AYb0Sbtti=O b9TghrvKFwvjYq7G5fhQ@mail.gmail.com>\r\nSubject: Test 4\r\nTo: example gitlab-instance-0cb319f4-monitoring-1-6j4ehu5u6aahvn37qedcjtthl-issue@gmail.com\r\nContent-Type: multipart/alternative; boundary=\"00000000000036fc2105d90cc2fb\"\r\n\r\n--00000000000036fc2105d90cc2fb\r\nContent-Type: text/plain; charset=\"UTF-8\"\r\n\r\n\r\n\r\n--00000000000036fc2105d90cc2fb\r\nContent-Type: text/html; charset=\"UTF-8\"\r\n\r\n<div dir=\"ltr\"><br></div>\r\n\r\n--00000000000036fc2105d90cc2fb--\r\n"}],"host":"gitlab.example","remote_ip":"127.0.0.1, 127.0.0.1","ua":"Faraday v1.10.0","route":"/api/:version/internal/mail_room/*mailbox_type","queue_duration_s":0.009574,"redis_read_bytes":42,"redis_write_bytes":5945,"redis_queues_read_bytes":42,"redis_queues_write_bytes":5945,"db_count":0,"db_write_count":0,"db_cached_count":0,"db_replica_count":0,"db_primary_count":0,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.0,"cpu_s":0.018429,"mem_objects":10338,"mem_bytes":1330528,"mem_mallocs":2175,"mem_total_bytes":1744048,"pid":19737,"correlation_id":"01FWZAH4D3N3885BQ8GGAFCG3W","meta.client_id":"ip/127.0.0.1","meta.caller_id":"POST /api/:version/internal/mail_room/*mailbox_type","meta.remote_ip":"127.0.0.1","meta.feature_category":"service_desk","content_length":"4827","request_urgency":"default","target_duration_s":1}

Step 7: Confirm on the UI that a new issue is created:

Screen_Shot_2022-02-28_at_11.51.53

Test Service Desk Email

  • Step 1: Set the following configs in gitlab.rb.
gitlab_rails['service_desk_email_enabled'] = true
gitlab_rails['service_desk_email_address'] = "example+service-desk-email-${key}@gmail.com"
gitlab_rails['service_desk_email_email'] = "example@gmail.com"
gitlab_rails['service_desk_email_password'] = "[REDACTED]"
gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
gitlab_rails['service_desk_email_port'] = 993
gitlab_rails['service_desk_email_ssl'] = true
gitlab_rails['service_desk_email_start_tls'] = false
gitlab_rails['service_desk_email_delivery_method'] = "webhook"
  • Step 2: Re-configure omnibus.

    • Watch mailroom logs with sudo gitlab-ctl tail mailroom. Confirm that mailroom is working properly.
    • Watch API logs with sudo tail -f /var/log/gitlab/gitlab-rails/api_json.log.
  • Step 3: Access a project's setting page. The project must have service desk enabled:

Screen_Shot_2022-02-28_at_17.21.00

  • Step 4: Open gmail.com or any other email client. Send an email to the addressed displayed in the above step.

  • Step 5: Wait for some dozens of seconds. The mailroom logs should consist of the following lines, indicate that the email content is sent via a HTTP request

{"severity":"INFO","time":"2022-02-28T06:20:39.793+00:00","context":{"email":"example@gmail.com","name":"inbox"},"uid":19678,"action":"sending to deliverer","deliverer":"MailRoom::Delivery::Postback","byte_size":4796}
{"severity":"INFO","time":"2022-02-28T06:20:39.840+00:00","delivery_method":"Postback","action":"message pushed","url":"http://gitlab.example/api/v4/internal/mail_room/service_desk_email"}

Step 6: API logs should contain the detail of the HTTP request POST /api/v4/internal/mail_room/service_desk_email

{"time":"2022-02-28T06:20:39.837Z","severity":"INFO","duration_s":0.02733,"db_duration_s":0.0,"view_duration_s":0.02733,"status":200,"method":"POST","path":"/api/v4/internal/mail_room/service_desk_email","params":[{"key":"Delivered-To: example service-desk-gitlab-instance-0cb319f4-monitoring-1-issue-@gmail.com\r\nReceived: by 2002:a4a:b247:0:0:0:0:0 with SMTP id i7csp1538751ooo;\r\n        Sun, 27 Feb 2022 22:20:33 -0800 (PST)\r\nX-Received: by 2002:a17:907:2a53:b0:6ce:e4fe:3f92 with SMTP id fe19-20020a1709072a5300b006cee4fe3f92mr13669332ejc.389.1646029233375;\r\n        Sun, 27 Feb 2022 22:20:33 -0800 (PST)\r\nARC-Seal: i","value":"1; a=rsa-sha256; t=1646029233; cv=none;\r\n        d=google.com; s=arc-20160816;\r\n        b=OTr1jiqblru8NJPUKPCe/tUXlVvsAo1OyCW6HEYbDGmZ Jpgz/UsDNcbD0O8GsNDoT\r\n         mVL/OCf3D3YMMOCOteV55zj6zyjK/6p3QoqRGA3RFNCRzwZcZMbEXGYiOWWTqmJeLVlD\r\n         CYnwa6BDkSU184TUgbvTMcdbF2aEpLoXQ/c9SnH4P7OIwnOFQpeV1hrXNOI eAsFLakW\r\n         uTLpmYvBQqTe6D9MNOcKUc6m5rlS6NjlDCtymtZu gSyDNM4sNnBKolyFsrJI2U8PAMb\r\n         KVPLJv1qUlycd2IBC6i0k1oFvd6q560ojTzWnFQ5XCS7l7WRr7W6nAKTBWYRaJWJQKSb\r\n         G86A==\r\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;\r\n        h=to:subject:message-id:date:from:mime-version:dkim-signature;\r\n        bh=GdWLytJb1JsYYcSib My73uaz32pXpfAvZBysnO/4c0=;\r\n        b=QoHt/cgJS/YmSmrBi8/YjJC9V9gR9oznLNv6JlSFicPGBT3Q5ZYhLw8O7s0oHmIJeC\r\n         QUOXgJcYG7RYtlMuqmLdsKN8YwCwSE0a BulRu6X8A/7yI/GsXS Nx9X/p2zdO6aqK c\r\n         p/yyCLYnMF57ldNmTnK3QikDOeN4eBhgjSPQugabNESXyffNbUth/7EVGyEwS3aIyTxC\r\n         ZM48UOUUIVSwG92HO7Rzu60vqlwoU62jsELw70/lkQM063Ud aSdcWrqOGW5a2UNw11b\r\n         erZkYS927Mujn9iKibkH6hUMTytpAHkjF8rF6dSXWzn2qRJOp9Fzc6AXrk4DfYuiBrhx\r\n         Af5A==\r\nARC-Authentication-Results: i=1; mx.google.com;\r\n       dkim=pass header.i=@gitlab.com header.s=google header.b=R2ARl uy;\r\n       spf=pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=qmnguyen@gitlab.com;\r\n       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=gitlab.com\r\nReturn-Path: <qmnguyen@gitlab.com>\r\nReceived: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])\r\n        by mx.google.com with SMTPS id kw11-20020a170907770b00b006d0a2bf890bsor4269692ejc.119.2022.02.27.22.20.33\r\n        for <example service-desk-gitlab-instance-0cb319f4-monitoring-1-issue-@gmail.com>\r\n        (Google Transport Security);\r\n        Sun, 27 Feb 2022 22:20:33 -0800 (PST)\r\nReceived-SPF: pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;\r\nAuthentication-Results: mx.google.com;\r\n       dkim=pass header.i=@gitlab.com header.s=google header.b=R2ARl uy;\r\n       spf=pass (google.com: domain of qmnguyen@gitlab.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=qmnguyen@gitlab.com;\r\n       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=gitlab.com\r\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n        d=gitlab.com; s=google;\r\n        h=mime-version:from:date:message-id:subject:to;\r\n        bh=GdWLytJb1JsYYcSib My73uaz32pXpfAvZBysnO/4c0=;\r\n        b=R2ARl uyfPcM7N6i9K5O1BI1ULB6kCfMdITX8ROdX59nIZRdNFbbWQcxcewC7eWtwL\r\n         UQoTtZnUVxR6a5JwQWNi/SUqevI wKwpPzalgbE4izFi1r5BPvHOiVEXIjcRhMF2pHlb\r\n         VBJ0npn2aII2275FT4YhtY2GPNXDzZP3Tlze0=\r\nX-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n        d=1e100.net; s=20210112;\r\n        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;\r\n        bh=GdWLytJb1JsYYcSib My73uaz32pXpfAvZBysnO/4c0=;\r\n        b=T8dDUmtLWbawx2D35h0MltQYgqL7nt4WcYHSHHZ3/g9jJce2ucN uZTY2Hp6QqFZE/\r\n         ncovuENpvpG/X8umSzaZSesWdH5PxziGBZg8ta8RWrPdDCpAxgbzapu4RfJFWQgP7NO1\r\n         YVpwp48Nyg534gD4AdiGiwDn0G2LxK5OVKpdJadF830E6ILwET12L8/AwLvbAg0JZ77T\r\n         k2kOtKVH9Q0YFkxd3ZKaiAM03/UMWmPAyXxYqn2TnIldIcbJszFS/O0Q5MWYjPaqr4u1\r\n         7VvKZVkXeQNnrjmdn29VJ5adApVU96EktFBoV5ew7P9q5yEl1DCzYNvWF aiLbSoiq2E\r\n         WYBw==\r\nX-Gm-Message-State: AOAM532bL XwlcAwaLQSALH9csUitH91ACf9IZfyE6u2EJcxX5aR4H1R\r\n\tax0d8EQJ9J5ayOfyK0a/ 0lru2r8O58G5k46cx7mvy9wemg=\r\nX-Google-Smtp-Source: ABdhPJz90t8UbUpIheJ2jmo2c1WghqtkxzHS kT7YESsApQFVZXXsvt4CBLTvlHQWwwJw49HN5ojpnaOIt5W4UKBsU4=\r\nX-Received: by 2002:a17:906:4783:b0:6d0:9b6e:b5a5 with SMTP id\r\n cw3-20020a170906478300b006d09b6eb5a5mr14747405ejc.526.1646029232793; Sun, 27\r\n Feb 2022 22:20:32 -0800 (PST)\r\nMIME-Version: 1.0\r\nFrom: Quang-Minh Nguyen <qmnguyen@gitlab.com>\r\nDate: Mon, 28 Feb 2022 13:20:21  0700\r\nMessage-ID: <CAH=ftaUSP-pdPUA5Eht2D5KshWwd9QSDO5RU PoBp_SNDCQvLA@mail.gmail.com>\r\nSubject: Test 9\r\nTo: example service-desk-gitlab-instance-0cb319f4-monitoring-1-issue-@gmail.com\r\nContent-Type: multipart/alternative; boundary=\"000000000000b61d1405d90e0b9a\"\r\n\r\n--000000000000b61d1405d90e0b9a\r\nContent-Type: text/plain; charset=\"UTF-8\"\r\n\r\n\r\n\r\n--000000000000b61d1405d90e0b9a\r\nContent-Type: text/html; charset=\"UTF-8\"\r\n\r\n<div dir=\"ltr\"><br></div>\r\n\r\n--000000000000b61d1405d90e0b9a--\r\n"}],"host":"gitlab.example","remote_ip":"127.0.0.1, 127.0.0.1","ua":"Faraday v1.10.0","route":"/api/:version/internal/mail_room/*mailbox_type","queue_duration_s":0.009531,"redis_read_bytes":42,"redis_write_bytes":6002,"redis_queues_read_bytes":42,"redis_queues_write_bytes":6002,"db_count":0,"db_write_count":0,"db_cached_count":0,"db_replica_count":0,"db_primary_count":0,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.0,"cpu_s":0.024085,"mem_objects":10477,"mem_bytes":1271440,"mem_mallocs":2177,"mem_total_bytes":1690520,"pid":49940,"correlation_id":"01FWZFSXFRK72BVHPMZGC6ACF4","meta.client_id":"ip/127.0.0.1","meta.caller_id":"POST /api/:version/internal/mail_room/*mailbox_type","meta.remote_ip":"127.0.0.1","meta.feature_category":"service_desk","content_length":"4796","request_urgency":"default","target_duration_s":1}

Step 7: Confirm on the UI that a new issue is created:

Screen_Shot_2022-02-28_at_13.21.41

Related issues

Checklist

See Definition of done.

For anything in this list which will not be completed, please provide a reason in the MR discussion

Required

  • Merge Request Title, and Description are up to date, accurate, and descriptive
  • MR targeting the appropriate branch
  • MR has a green pipeline on GitLab.com
  • Pipeline is green on dev.gitlab.org if the change is touching anything besides documentation or internal cookbooks
  • trigger-package has a green pipeline running against latest commit

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes
  • Documentation created/updated
  • Tests added
  • Integration tests added to GitLab QA
  • Equivalent MR/issue for the GitLab Chart opened
Edited by Quang-Minh Nguyen

Merge request reports