Skip to main content
gitlab_tools.py
"""
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

1

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate
uv venv --python 3.12
.venv\Scripts\activate
2

Install dependencies

uv pip install -U agno python-gitlab
3

Export your API keys

export GITLAB_ACCESS_TOKEN="your_gitlab_access_token_here"
$Env:GITLAB_ACCESS_TOKEN="your_gitlab_access_token_here"
4

Run the example

Save the code above as gitlab_tools.py, then run:
python gitlab_tools.py
Full source: cookbook/91_tools/gitlab_tools.py