Skip to content

Fix support for the GitLab Slack App

Created by: jgangemi

The current implementation does not support the json data structure returned from the PUT and GET operations.

Sample JSON from a GET call using:

curl -s -X GET --header "PRIVATE-TOKEN: <token>" https://gitlab.com/api/v4/projects/<project-id>/integrations/gitlab-slack-application
{
  "id": 12345,
  "title": "GitLab for Slack app",
  "slug": "gitlab-slack-application",
  "created_at": "2024-10-15T01:57:19.376Z",
  "updated_at": "2024-10-15T13:28:48.228Z",
  "active": true,
  "commit_events": false,
  "push_events": false,
  "issues_events": false,
  "incident_events": false,
  "alert_events": true,
  "confidential_issues_events": false,
  "merge_requests_events": false,
  "tag_push_events": false,
  "deployment_events": false,
  "note_events": false,
  "confidential_note_events": false,
  "pipeline_events": false,
  "wiki_page_events": false,
  "job_events": false,
  "comment_on_event_enabled": true,
  "inherited": false,
  "vulnerability_events": false,
  "properties": {
    "channel": null,
    "notify_only_broken_pipelines": true,
    "branches_to_be_notified": "default",
    "labels_to_be_notified": "",
    "labels_to_be_notified_behavior": "match_any",
    "push_channel": "",
    "issue_channel": "",
    "confidential_issue_channel": "",
    "merge_request_channel": "",
    "note_channel": "",
    "confidential_note_channel": "",
    "tag_push_channel": "",
    "pipeline_channel": "",
    "wiki_page_channel": "",
    "deployment_channel": "",
    "incident_channel": "",
    "vulnerability_channel": "",
    "alert_channel": ""
  }
}

All of the boolean values aside from notify_only_broken_pipelines are already defined on the Service struct. the current SlackApplicationProperties just redeclares all the boolean properties and the SetSlackApplicationOptions doesn't declare almost all of what's in the properties attribute.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information