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

# GitLab Tools

> List and summarize GitLab merge requests and issues with read-only GitlabTools functions.

```python gitlab_tools.py theme={null}
"""
GitLab Tools

Setup:
1. Create a personal access token in GitLab with read scopes.
2. Set environment variables:
   - GITLAB_ACCESS_TOKEN: Your token
   - GITLAB_BASE_URL: Optional GitLab URL (defaults to https://gitlab.com)
"""

from agno.agent import Agent
from agno.tools.gitlab import GitlabTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


agent = Agent(
    instructions=[
        "Use GitLab tools to answer repository questions.",
        "Use read-only operations unless explicitly asked to modify data.",
    ],
    tools=[
        GitlabTools(
            enable_list_projects=True,
            enable_get_projects=True,
            enable_list_merge_requests=True,
            enable_get_merge_request=True,
            enable_list_issues=True,
        )
    ],
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response(
        "List open merge requests for project 'gitlab-org/gitlab' and summarize the top 5 by recency.",
        markdown=True,
    )

    # Async variant:
    # import asyncio
    #
    # async def run_async():
    #     await agent.aprint_response(
    #         "List open issues for project 'gitlab-org/gitlab' with labels and assignees.",
    #         markdown=True,
    #     )
    #
    # asyncio.run(run_async())
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno python-gitlab
    ```
  </Step>

  <Step title="Export your API keys">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export GITLAB_ACCESS_TOKEN="your_gitlab_access_token_here"
      ```

      ```bash Windows theme={null}
      $Env:GITLAB_ACCESS_TOKEN="your_gitlab_access_token_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `gitlab_tools.py`, then run:

    ```bash theme={null}
    python gitlab_tools.py
    ```
  </Step>
</Steps>

Full source: [cookbook/91\_tools/gitlab\_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/gitlab_tools.py)
