# Getting Started

## Quick Start Guide

### 1. Create a Gitlab Pipes Account

We do not currently support Gitlab OAuth (I know right), but we will in the near future, for now new accounts can be created through our [Login Page](https://gitlabpipes.com/ap/login).

### 2. Create a Gitlab Pipes Organization

Projects are grouped under Organizations. Create an Organization for your group of projects.

### 3. Add `.gitlab-pipes.yml` Configuration

Create a `.gitlab-pipes.yml` file in the root of each project that you want to have Gitlab Pipes orchestrate builds for you.

{% code title=".gitlab-pipes.yml" %}

```yaml
only:
  - master

dependencies:
  - BackendDatabaseModels/master
  - ExternalClientModels/master
  - CommonsProject/maybe-another-release-branch
```

{% endcode %}

More information about the syntax of this file can be found [here](/docs/configuration/.gitlab-pipes.yml.md).

### 4. Register Gitlab Webhooks to Gitlab Pipes

Gitlab Pipes listens to Push Events and Pipeline Events from Gitlab to let it know when to act. You must register Gitlab Pipes to receive the proper webhooks from Gitlab.

{% hint style="info" %}
**If you are paying for Gitlab Silver or Higher Tier then you can configure Webhooks at the Group level.**
{% endhint %}

![Adding Gitlab Pipes Webhooks to a Project](/files/-LbGCEBfDZnrAzlJpL-P)

> **Webhook URL:** **<https://hooks.gitlabpipes.com/v1/webhooks/gitlab>**
>
> **Secret Token: Get from GitlabPipes.com. Go to your Organization and click Tokens.**
>
> **Trigger: Push Events, Pipeline Events**

{% hint style="warning" %}
Make sure you add your Gitlab Event to the Secret Token box.
{% endhint %}

Click **Add Webhook!**

### 5. Make sure `.gitlab-ci.yml`  is set to API only

Modify your `.gitlab-ci.yml` jobs to only be triggered via API. You can also add `web` to allow you to manually start pipelines in the case of an emergency.

Add `api` and `web` under an `only` block in each job that will need to run when a commit is pushed to a release branch or when a downstream dependency changes.

{% code title=".gitlab-ci.yml" %}

```yaml
stages:
  - snapshot

snapshot:
  image: registry.gitlab.com/docker/mavenartifactorydocker
  stage: snapshot
  only:
    - api
    - web
  script:
    - echo "This job will be triggered only by Gitlab Pipes or manually"
```

{% endcode %}

### 6. Commit Code into Your Gitlab Project

The last step is to commit code into your Gitlab Project to make sure it all works.

Commit code into your Project Repository and go to GitlabPipes.com and open your Organization's Pipelines and you should see a **Pending Build**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gitlabpipes.com/docs/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
