{"id":29195699,"url":"https://github.com/gptscript-ai/gitlab-assistant","last_synced_at":"2026-02-02T08:32:18.911Z","repository":{"id":248894670,"uuid":"827558038","full_name":"gptscript-ai/gitlab-assistant","owner":"gptscript-ai","description":"GPTScript assistant to communicate with a public GitLab instance.","archived":false,"fork":false,"pushed_at":"2024-08-08T15:51:48.000Z","size":152,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-09T18:38:39.770Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gptscript-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-11T22:26:33.000Z","updated_at":"2024-08-08T15:51:51.000Z","dependencies_parsed_at":"2024-07-17T19:38:27.101Z","dependency_job_id":"5fe3e2db-d368-477c-a088-085c184fe4f3","html_url":"https://github.com/gptscript-ai/gitlab-assistant","commit_stats":null,"previous_names":["cloudnautique/gitlab-assistant"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gptscript-ai/gitlab-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gptscript-ai%2Fgitlab-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gptscript-ai%2Fgitlab-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gptscript-ai%2Fgitlab-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gptscript-ai%2Fgitlab-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gptscript-ai","download_url":"https://codeload.github.com/gptscript-ai/gitlab-assistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gptscript-ai%2Fgitlab-assistant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263077633,"owners_count":23410167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-02T05:05:33.327Z","updated_at":"2026-02-02T08:32:18.870Z","avatar_url":"https://github.com/gptscript-ai.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitLab API Assistant\n\nInitial work on a GitLab assistant. Only tested against GPT-4o and the public GitLab instance.\n\n## Overview\n\nThis is a GitLab Assistant that can interact with the public GitLab instance. It currently provides agents to work with projects, repositories, and merge_requests. It leverages the openapi.yaml spec in this repository to build out the assistant with each Agent having a set of tools to interact with the resource in the GitLab API.\n\n## Pre-requisites\n\nYou will need a PAT (Personal Access Token) from GitLab to interact with the API. You can create one by following the instructions [here](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html).\n\n## Getting Started\n\nTo get started you can run the following command:\n\n```bash\ngptscript github.com/gptscript-ai/gitlab-assistant\n```\n\nYou will be prompted for an OpenAI API key and a GitLab Personal Access Token.\n\n## Capabilities\n\nThe GitLab Assistant can interact with the following resources:\n\n### GitLab Agent\n\n- **Main entrypoint for GitLab Agent**: Understands all things GitLab, source control, CI/CD, and general DevOps best practices.\n\n### Tools\n\n#### Pipelines\n\n- **Operations related to pipelines**: Creating, listing, updating, and deleting pipelines and jobs in GitLab.\n\n#### Projects\n\n- **Operations related to projects**: Creating, listing, updating, and deleting projects in GitLab. Does not cover all things projects.\n\n#### Repositories\n\n- **Operations related to repositories**: Creating, listing, updating, and deleting repositories in GitLab. This also provides access to branches etc.\n\n#### Merge Requests\n\n- **Operations related to merge requests**: Creating, listing, updating, and deleting merge requests in GitLab. You can also comment, close, merge and check the status of the builds/pipelines.\n\n## Adding a new Tool\n\nWhen adding a new tool to this repo, clone this tool to your local machine.\n\nThen add a directory for the new resource/tool.\n\nIn the tool file, you should leverage the existing `../context/tool.gpt` and create a new file.\n\nTools should be a subset and focus on a single resource because there are to many endpoints to cover in a single script.\n\nExample\n\n```\nName: resource_name\nDescription: Interact with XYZ in GitLab\nContext: ../context/tool.gpt\nTools: *resources* from openapi.yaml\n\nHandle the users requests for XYZ in gitlab\n```\n\n## Private GitLab Instance\n\nYou will need to edit the `openapi.yaml` spec and adjust the host section to point to your private GitLab instance.\n\n```yaml\n...\nschemes:\n- https\nhost: gitlab.com\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgptscript-ai%2Fgitlab-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgptscript-ai%2Fgitlab-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgptscript-ai%2Fgitlab-assistant/lists"}