GitLab

GitLab Connector #

Register GitLab Connector #

curl -XPUT "http://localhost:9000/connector/gitlab?replace=true" -d '{
  "name": "GitLab Connector",
  "description": "Fetch repositories, issues, merge requests, wikis, and snippets from GitLab.",
  "icon": "/assets/icons/connector/gitlab/icon.png",
  "category": "website",
  "tags": [
    "git", 
    "code", 
    "vcs", 
    "website"
  ],
  "url": "http://coco.rs/connectors/gitlab",
  "assets": {
    "icons": {
      "default" : "/assets/icons/connector/gitlab/icon.png",
      "repository" : "/assets/icons/connector/gitlab/repository.png",
      "issue" : "/assets/icons/connector/gitlab/issue.png",
      "merge_request" : "/assets/icons/connector/gitlab/merge_request.png",
      "wiki" : "/assets/icons/connector/gitlab/wiki.png",
      "snippet" : "/assets/icons/connector/gitlab/snippet.png"
    }
  }
}'

Use gitlab as a unique identifier, as it is a builtin connector.

Update coco-server’s config #

Below is an example configuration for enabling the GitLab Connector in coco-server:

connector:
  gitlab:
    enabled: true
    queue:
      name: indexing_documents
    interval: 30s

Explanation of Config Parameters #

FieldTypeDescription
enabledbooleanEnables or disables the GitLab connector. Set totrue to activate it.
intervalstringSpecifies the time interval (e.g., 30s) at which the connector will check for updates.
queue.namestringDefines the name of the queue where indexing tasks will be added.

Use the GitLab Connector #

The GitLab Connector allows you to index repositories, issues, merge requests, wikis, and snippets from your GitLab account or group.

Configure GitLab Datasource #

To configure your GitLab connection, you’ll need to provide a Personal Access Token (PAT) and specify the scope of the data you wish to index.

base_url: (Optional) The base URL of your self-hosted GitLab instance (e.g., https://gitlab.example.com). If left empty, it will default to https://gitlab.com.

token: A GitLab Personal Access Token (PAT) with at least the api scope. This is required for authentication.

owner: The username or group name that owns the repositories you want to index (e.g., infinilabs).

repos: (Optional) A list of specific repository names to index. If left empty, the connector will index all repositories belonging to the owner that the token has access to.

index_issues: (Optional) A boolean (true or false) to enable indexing of issues. Defaults to true.

index_merge_requests: (Optional) A boolean (true or false) to enable indexing of merge requests. Defaults to true.

index_wikis: (Optional) A boolean (true or false) to enable indexing of wikis. Defaults to true.

index_snippets: (Optional) A boolean (true or false) to enable indexing of snippets. Defaults to true.

Example Request #

Here is an example request to configure the GitLab Connector:

curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '
{
    "name":"My Organization Repos",
    "type":"connector",
    "connector":{
        "id": "gitlab",
        "config": {
            "base_url": "https://gitlab.com",
            "token": "YourPersonalAccessToken",
            "owner": "infinilabs",
            "repos": [
                "coco-server",
                "console"
            ],
            "index_issues": true,
            "index_merge_requests": true,
            "index_wikis": true,
            "index_snippets": true
        }
    }
}'

Supported Config Parameters for GitLab Connector #

FieldTypeDescription
base_urlstringOptional. The base URL of your self-hosted GitLab instance.
tokenstringRequired. Your GitLab Personal Access Token (PAT) with api scope.
ownerstringRequired. The username or group name to scan.
repos[]stringOptional. A list of repository names to index. If empty, all repositories for the owner will be indexed.
index_issuesbooleanOptional. Whether to index issues. Defaults to true.
index_merge_requestsbooleanOptional. Whether to index merge requests. Defaults to true.
index_wikisbooleanOptional. Whether to index wikis. Defaults to true.
index_snippetsbooleanOptional. Whether to index snippets. Defaults to true.
Edit Edit this page