> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withampersand.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab

## What's Supported

### Supported Actions

This connector supports:

* [Read Actions](/read-actions), including full historic backfill and incremental read for most of the supported objects.
* [Write Actions](/write-actions).
* [Proxy Actions](/proxy-actions), using the base URL `https://gitlab.com`.

### Supported Objects

The GitLab connector supports reading from the following objects:

* [admin/search/migrations](https://docs.gitlab.com/api/admin/search_migrations)
* [application/appearance](https://docs.gitlab.com/api/appearance/#get-details-on-current-application-appearance)
* [application/plan\_limits](https://docs.gitlab.com/api/plan_limits)
* [application/settings](https://docs.gitlab.com/api/settings)
* [applications](https://docs.gitlab.com/api/applications)
* [audit\_events](https://docs.gitlab.com/api/audit_events)
* [broadcast\_messages](https://docs.gitlab.com/api/broadcast_messages)
* [bulk\_imports](https://docs.gitlab.com/api/bulk_imports)
* [bulk\_imports/entities](https://docs.gitlab.com/api/bulk_imports/#list-group-or-project-migration-entities)
* [deploy\_keys](https://docs.gitlab.com/api/deploy_keys)
* [deploy\_tokens](https://docs.gitlab.com/api/deploy_tokens)
* [events](https://docs.gitlab.com/api/events)
* [experiments](https://docs.gitlab.com/api/experiments)
* [geo\_nodes/status](https://docs.gitlab.com/api/geo_nodes#status)
* [geo\_sites](https://docs.gitlab.com/api/geo_sites)
* [geo\_sites/status](https://docs.gitlab.com/api/geo_sites#status)
* [groups](https://docs.gitlab.com/api/groups)
* [hooks](https://docs.gitlab.com/api/system_hooks)
* [issues](https://docs.gitlab.com/api/issues)
* [issues\_statistics](https://docs.gitlab.com/api/issues_statistics)
* [license](https://docs.gitlab.com/api/license)
* [licenses](https://docs.gitlab.com/api/templates/licenses)
* [member\_roles](https://docs.gitlab.com/api/member_roles)
* [merge\_requests](https://docs.gitlab.com/api/merge_requests)
* [metadata](https://docs.gitlab.com/api/metadata)
* [namespaces](https://docs.gitlab.com/api/namespaces)
* [pages/domains](https://docs.gitlab.com/api/pages_domains/)
* [personal\_access\_tokens](https://docs.gitlab.com/api/personal_access_tokens)
* [personal\_access\_tokens/self/associations](https://docs.gitlab.com/api/personal_access_tokens/#list-all-token-associations)
* [project\_aliases](https://docs.gitlab.com/api/project_aliases)
* [project\_repository\_storage\_moves](https://docs.gitlab.com/api/project_repository_storage_moves)
* [projects](https://docs.gitlab.com/api/projects)
* [runners](https://docs.gitlab.com/api/runners)
* [runners/all](https://docs.gitlab.com/api/runners/#list-all-runners)
* [service\_accounts](https://docs.gitlab.com/api/service_accounts)
* [sidekiq/compound\_metrics](https://docs.gitlab.com/api/sidekiq_metrics)
* [sidekiq/job\_stats](https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-job-statistics)
* [sidekiq/process\_metrics](https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-process-metrics)
* [sidekiq/queue\_metrics](https://docs.gitlab.com/api/sidekiq_metrics)
* [snippet\_repository\_storage\_moves](https://docs.gitlab.com/api/snippet_repository_storage_moves)
* [snippets](https://docs.gitlab.com/api/snippets)
* [snippets/all](https://docs.gitlab.com/api/snippets/#list-all-snippets)
* [snippets/public](https://docs.gitlab.com/api/snippets/#list-all-public-snippets)
* [templates/dockerfiles](https://docs.gitlab.com/api/templates/dockerfiles)
* [templates/gitignores](https://docs.gitlab.com/api/templates/gitignores)
* [templates/gitlab\_ci\_ymls](https://docs.gitlab.com/api/templates/gitlab_ci_ymls)
* [templates/licenses](https://docs.gitlab.com/api/templates/licenses)
* [todos](https://docs.gitlab.com/api/todos)
* [topics](https://docs.gitlab.com/api/topics)
* [users](https://docs.gitlab.com/api/users)

The GitLab connector supports writing to the following objects:

* [applications](https://docs.gitlab.com/api/applications)
* [broadcast\_messages](https://docs.gitlab.com/api/broadcast_messages)
* [chat/completions](https://docs.gitlab.com/api/chat)
* [code\_suggestions/completions](http://docs.gitlab.com/api/suggestions/)
* [deploy\_keys](https://docs.gitlab.com/api/deploy_keys)
* [geo\_nodes](https://docs.gitlab.com/api/geo_nodes)
* [geo\_sites](https://docs.gitlab.com/api/geo_sites)
* [group\_repository\_storage\_moves](https://docs.gitlab.com/api/group_repository_storage_moves)
* [groups](https://docs.gitlab.com/api/groups)
* [hooks](https://docs.gitlab.com/administration/system_hooks/)
* [member\_roles](https://docs.gitlab.com/api/member_roles/#create-a-instance-member-role)
* [organizations](https://docs.gitlab.com/api/organizations)
* [project\_aliases](https://docs.gitlab.com/api/project_aliases)
* [project\_repository\_storage\_moves](https://docs.gitlab.com/api/project_repository_storage_moves)
* [projects](https://docs.gitlab.com/api/projects)
* [runners](https://docs.gitlab.com/api/runners)
* [security/vulnerability\_exports](https://docs.gitlab.com/api/vulnerability_exports/)
* [service\_accounts](https://docs.gitlab.com/api/service_accounts/)
* [snippets](https://docs.gitlab.com/api/snippets)
* [todos/mark\_as\_done](https://docs.gitlab.com/api/todos/#mark-all-to-do-items-as-done)
* [topics](https://docs.gitlab.com/api/topics)
* [user/emails](https://docs.gitlab.com/api/user_email_addresses/#add-an-email-address)
* [user/gpg\_keys](https://docs.gitlab.com/api/user/gpg_keys)
* [user/keys](https://docs.gitlab.com/api/user/keys)
* [user/runners](https://docs.gitlab.com/api/user/runners)
* [user/support\_pin](https://docs.gitlab.com/api/users/#create-a-support-pin)
* [users](https://docs.gitlab.com/api/users)

### Example integration

For an example manifest file of an GitLab integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/gitlab/amp.yaml).

## Using the connector

This connector uses GitLab Access Tokens for authentication, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.)

Your customer can pick between:

* [Personal access tokens](https://docs.gitlab.com/user/profile/personal_access_tokens/)
* [Project access tokens](https://docs.gitlab.com/user/project/settings/project_access_tokens/)
* [Group access tokens](https://docs.gitlab.com/user/group/settings/group_access_tokens/)

To start integrating with GitLab:

* Create a manifest file like the [example](https://github.com/amp-labs/samples/blob/main/gitlab/amp.yaml).
* Deploy it using the [amp CLI](/cli/overview).
* If you are using Read Actions, create a [destination](/destinations).
* Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for an Access token.
* Start using the connector!
  * If your integration has [Read Actions](/read-actions), you'll start getting webhook messages.
  * If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API.
  * If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls.
