---
sidebar_position: 90
description: How to configure a Bitbucket retriever.
---
import { integrations } from "@site/data/integrations";
import {Mandatory, NotMandatory} from "@site/src/components/checks/checks";
export const retrieverName = 'Bitbucket';
export const info = integrations.retrievers.find((r) => r.name === retrieverName)

# Bitbucket

## Overview
{info.longDescription ?? info.description}

:::tip
Bitbucket has rate limits, be sure to correctly set your `PollingInterval` to avoid reaching the limit.
:::

## Configure the relay proxy

To configure your relay proxy to use the {retrieverName} retriever, you need to add the following
configuration to your relay proxy configuration file:

```yaml title="goff-proxy.yaml"
# ...
retrievers:
  - kind: bitbucket
    repositorySlug: thomaspoignant/go-feature-flag
    path: config/flag/my-flags.yaml
# ...
```

| Field name       |    Mandatory     | Type   | Default              | Description                                                                                                                                                                       |
|------------------|:----------------:|--------|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `kind`           |  <Mandatory />   | string | **none**             | Value should be **`bitbucket`**.<br/>_This field is mandatory and describes which retriever you are using._                                                                       |
| `repositorySlug` |  <Mandatory />   | string | **none**             | The repository slug of the Bitbucket repository where your file is located _(ex: `thomaspoignant/go-feature-flag`)_.                                                              |
| `path`           |  <Mandatory />   | string | **none**             | Path to the file inside the repository _(ex: `config/flag/my-flags.yaml`)_.                                                                                                       |
| `baseUrl`        | <NotMandatory /> | string | `https://gitlab.com` | The base URL of your Bitbucket instance<br/>By default we are using the public API `https://api.bitbucket.org`.                                                                   |
| `branch`         | <NotMandatory /> | string | `main`               | The branch we should check in the repository.                                                                                                                                     |
| `token`          | <NotMandatory /> | string | **none**             | Bitbucket token used to access a private repository ([_Create a Repository Access Token_](https://support.atlassian.com/bitbucket-cloud/docs/create-a-repository-access-token/)). |
| `timeout`        | <NotMandatory /> | string | `10000`              | Timeout in millisecond used when calling GitLab.                                                                                                                                  |

## Configure the GO Module
To configure your GO module to use the {retrieverName} retriever, you need to add the following
configuration to your `ffclient.Config{}` object:

```go title="example.go"
err := ffclient.Init(ffclient.Config{
    PollingInterval: 3 * time.Second,
    Retriever: &bitbucketretriever.Retriever{
        RepositorySlug: "thomaspoignant/go-feature-flag",
        Branch: "main",
        FilePath: "testdata/flag-config.goff.yaml",
        BitBucketToken: "XXXX",
        Timeout: 2 * time.Second,
    },
})
defer ffclient.Close()
```

| Field                |    Mandatory     | Description                                                                          |
|----------------------|:----------------:|--------------------------------------------------------------------------------------|
| **`RepositorySlug`** |  <Mandatory />   | Your Gitlab slug `org/repo-name`.                                                    |
| **`FilePath`**       |  <Mandatory />   | The path of your file.                                                               |
| **`BaseURL`**        | <NotMandatory /> | The domain name of your Bitbucket instance <br/>Default: `https://api.bitbucket.org` |
| **`Branch`**         | <NotMandatory /> | The branch where your file is.<br/>Default: `main`                                   |
| **`BitBucketToken`** | <NotMandatory /> | Bitbucket token is used to access a private repository                               |
| **`Timeout`**        | <NotMandatory /> | Timeout for the HTTP call <br/>Default: 10 seconds                                   |
