Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Service Catalog GitLab integration #8329

Merged
merged 4 commits into from
Jan 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/_data/docs_nav_konnect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@
url: /service-catalog/integrations/traceable/
- text: Datadog
url: /service-catalog/integrations/datadog/
- text: GitLab
url: /service-catalog/integrations/gitlab/

- title: API Products
icon: /assets/images/icons/konnect/icn-api-product.svg
Expand Down
5 changes: 5 additions & 0 deletions app/_data/tables/konnect/integrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ integrations:
slug: datadog
events: true
description: View the performance and health of your services by ingesting Datadog monitors and dashboards
- name: GitLab
icon: gitlab.svg
slug: gitlab
events: true
description: Associate a service to one or more GitLab projects

##### Using this file ######
# - name: Name of the integration
Expand Down
6 changes: 2 additions & 4 deletions app/_includes/service-catalog-discovery.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
* Discovery {% if include.discovery_support == true %}is{% else %}isn't{% endif %} supported by this integration
* Discovery {% if include.discovery_default == true %}is{% else %}isn't{% endif %} enabled by default
* Bindable entities: {{ include.bindable_entities }}
* Discovery mechanism: {{ include.mechanism }}
* Automatic resource discovery {% if include.discovery_support == true %}is{% else %}isn't{% endif %} supported by this integration
* Resource types: {{ include.bindable_entities }}
1 change: 1 addition & 0 deletions app/assets/images/icons/third-party/gitlab.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 0 additions & 2 deletions app/konnect/service-catalog/integrations/datadog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ title: Datadog Integration
content-type: reference
beta: true
discovery_support: true
discovery_default: true
bindable_entities: "Datadog Monitor, Datadog Dashboard"
mechanism: "pull/ingestion model"
---

_Type: External_
Expand Down
2 changes: 0 additions & 2 deletions app/konnect/service-catalog/integrations/github.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ content-type: reference
beta: true

discovery_support: true
discovery_default: true
bindable_entities: "Repositories"
mechanism: "pull/ingestion model"
---

_Type: External_
Expand Down
64 changes: 64 additions & 0 deletions app/konnect/service-catalog/integrations/gitlab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: GitLab Integration
content-type: reference
beta: true

discovery_support: true
bindable_entities: "Projects"
---

_Type: External_

The GitLab integration allows you to associate your {{site.service_catalog_name}} service to one or more [GitLab projects](https://docs.gitlab.com/ee/user/get_started/get_started_projects.html).

For each linked project, the UI can show a **Project Summary** with simple data pulled from the GitLab API, such as the number of open issues, open merge requests, contributors, languages, and latest releases.

## Prerequisites

* You need the [Owner GitLab role](https://docs.gitlab.com/ee/user/permissions.html) to authorize the integration. This is required for event ingestion.
* Only [GitLab.com subscriptions](https://docs.gitlab.com/ee/subscriptions/gitlab_com/) are supported at this time

## Authorize the GitLab integration

1. From the **{% konnect_icon servicehub %} Service Catalog** in {{site.konnect_product_name}}, select **[Integrations](https://cloud.konghq.com/us/service-catalog/integrations)**.
2. Select **GitLab**, then **Install GitLab**.
3. Click **Authorize**.

## View GitLab specs in Service Catalog

You can map specs to a Service Catalog service and view them in {{site.konnect_short_name}}.

1. From the **{% konnect_icon servicehub %} Service Catalog** in {{site.konnect_product_name}}, select **[Services](https://cloud.konghq.com/us/service-catalog)**.
2. Select a service, then open the **API Specs** tab.
2. Click **Add API Spec**.
3. Choose GitLab as the **Source**, then pick your spec and name it.

Once it's uploaded, you can view the rendered spec on the API Specs tab in structured (UI), YAML, or JSON format, and download it in either YAML or JSON format.

## Resources

Entity | Description
-------|-------------
Projects | Organizes all the data for a specific development project that relates to a Service Catalog Service.

## Events

This integration supports events.

You can view the following event types for linked projects from the {{site.konnect_product_name}} UI:

* Opened merge requests
* Merged merge requests


## Discovery information

Choose a reason for hiding this comment

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

suggestion: there's info here that's not user-facing and some that's no longer relevant (cc @miko-bautista)

Screenshot 2025-01-16 at 11 32 19 AM

  • There's no concept of "enabled" for integration discovery in KSC
  • Bindable entities is close to binding which is a term we're trying to move away from externally. Instead, use "Resources" and/or "Resource Types"
  • "Discovery mechanism" is not a user-facing detail

I think this section can be as concise as:

GitLab Projects will be automatically discovered once the integration is authorized.


Rest of the docs look great! 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@Drew-Kimberly Thanks for the feedback! Since this is reusable content that is used by multiple integrations, I removed the 1st and 4th bullets, and reworded the remaining two per your suggestions.


<!-- vale off-->

{% include_cached service-catalog-discovery.html
discovery_support=page.discovery_support
discovery_default=page.discovery_default
bindable_entities=page.bindable_entities
mechanism=page.mechanism %}

<!-- vale on-->
2 changes: 0 additions & 2 deletions app/konnect/service-catalog/integrations/pagerduty.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ title: PagerDuty Integration
content-type: reference
beta: true
discovery_support: true
discovery_default: true
bindable_entities: "PagerDuty Service"
mechanism: "pull/ingestion model"
---

_Type: External_
Expand Down
2 changes: 0 additions & 2 deletions app/konnect/service-catalog/integrations/swaggerhub.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ title: SwaggerHub Integration
content-type: reference
beta: true
discovery_support: true
discovery_default: true
bindable_entities: "SwaggerHub API version"
mechanism: "pull/ingestion model"
---

_Type: External_
Expand Down
2 changes: 0 additions & 2 deletions app/konnect/service-catalog/integrations/traceable.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ title: Traceable Integration
content-type: reference
beta: true
discovery_support: true
discovery_default: true
bindable_entities: "Traceable Service"
mechanism: "pull/ingestion model"
---

_Type: External_
Expand Down
Loading