Skip to content

Integration form part of DingTalk Robot Command

Problem to solve

Connect DingTalk user with Gitlab self-manage instance.

discussion with upstream https://gitlab.com/gitlab-org/gitlab/-/issues/354069

演示视频 https://drive.google.com/file/d/15tbFD0gPGntbjNQB4mJyEGDJsgC85X8o/view?usp=sharing

@lpeng1991 please confirm about the help text in this tory

Task List

  1. add feature flag ding_talk_integration, enable it by default.
  2. add migration for Application_settings model, add column ding_talk_enabled, ding_talk_app_key and ding_talk_app_secret
  3. add DingTalk integration settings on Admin General Settings, only visible for self manage, invisible for saas
  4. add migration for Integrations::DingTalkTrackerData as data field, which link to Integrations::DingTalk, also define Integrations::DingTalk
    1. override Integration class method integration_names, to add dingtalk inside
    2. override Gitlab::Integrations::StiType method namespaced_integrations, to add dingtalk inside
    3. do not accept create dingtalk integration from rest api
    4. define property organization_id in Integrations::DingTalk, define fields method inside
    5. show Integrations::DingTalk on integration list, only for self manage, invisible for saas
    6. add validation in Integrations::DingTalk, only self manage and instance level can be created, cannot updated when project & group level.
  5. define api endpoint for receive dingtalk message
    1. check ding talk is enable or not in application setting
    2. check Integrations::DingTalk is created on instance level
    3. check ChatName mapping to specific dingtalk user id
毛超 编辑于