{"id":13557683,"url":"https://github.com/maubot/gitlab","last_synced_at":"2026-04-06T07:07:43.301Z","repository":{"id":28077433,"uuid":"105297588","full_name":"maubot/gitlab","owner":"maubot","description":"A GitLab client and webhook receiver for maubot.","archived":false,"fork":false,"pushed_at":"2024-06-05T06:47:48.000Z","size":639,"stargazers_count":96,"open_issues_count":25,"forks_count":31,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-03T12:47:23.005Z","etag":null,"topics":["gitlab","matrix-bot","maubot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maubot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-09-29T17:06:14.000Z","updated_at":"2025-02-22T12:21:52.000Z","dependencies_parsed_at":"2024-11-04T08:40:39.018Z","dependency_job_id":null,"html_url":"https://github.com/maubot/gitlab","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/maubot/gitlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maubot%2Fgitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maubot%2Fgitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maubot%2Fgitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maubot%2Fgitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maubot","download_url":"https://codeload.github.com/maubot/gitlab/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maubot%2Fgitlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["gitlab","matrix-bot","maubot"],"created_at":"2024-08-01T12:04:29.316Z","updated_at":"2026-04-06T07:07:43.282Z","avatar_url":"https://github.com/maubot.png","language":"Python","funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"# gitlab\n\nA GitLab client and webhook receiver for maubot.\n\n## Usage\n\n### Set up the plugin like any other maubot plugin\n\nUpload [the plugin](https://mau.dev/maubot/gitlab/-/pipelines) in Maubot Manager,\nand then create an instance (an association of a plugin and a client).\n\nGive this new instance an **ID** / name, for example `my_gitlab_bot`.\nWe will refer to this identifier later as `instance_id`.\n\n## Logging into your GitLab account\n\nCreate a personal access token, as explained in Gitlab's documentation.\n\n\u003e You can create as many personal access tokens as you like from your GitLab profile.\n\u003e\n\u003e - 1. Sign in to GitLab.\n\u003e - 2. In the upper-right corner, click your avatar and select **Settings**.\n\u003e - 3. On the **User Settings** menu, select **Access Tokens**.\n\u003e - 4. Choose a name and optional expiry date for the token.\n\u003e - 5. Choose the [desired scopes](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#limiting-scopes-of-a-personal-access-token).\n\u003e - 6. Click the **Create personal access token** button.\n\u003e - 7. Save the personal access token somewhere safe. If you navigate away or refresh your page, and you did not save the token, you must create a new one.\n\u003e\n\u003e _Source: \u003chttps://docs.gitlab.com/ee/user/profile/personal_access_tokens\u003e._\n\nInvite the bot to a Matrix room.\n\nAssuming the base command to invoke the bot is `gitlab`, adapt the following command and invoke the bot with:\n\n**Warning: Make sure not to enter this command in a public room!**\n\n```txt\n!gitlab server login https://gitlab.example.org PERSONAL_ACCESS_TOKEN\n```\n\nYou should now be logged in your Gitlab account. Use `!gitlab` to view the list of commands and `!gitlab \u003ccommand\u003e` to\nview help for subcommands (e.g. `!gitlab webhook`).\n\n## Setting up webhooks\n\n**The instructions below are for adding webhooks manually. You can also simply use `!gitlab webhook add \u003crepo\u003e`, but\nthat requires logging into the bot using your GitLab token first.**\n\nGo to the desired repository's webhooks settings, in Gitlab, under **Your repo** \u003e **Settings** \u003e **Webhooks**.\n\nConfigure the **URL** as follows:\n\n```sh\nhttps://${server_name}/${plugin_base_path}/${instance_id}/${instance_path}?room=${room_id}\n```\n\nWhere\n\n- `${server_name}` is an ip address or domain name where your Maubot instance is reachable\n- `${base_path}` is the base path for plugin endpoint as configured under `server.plugin_base_path` in `config.yaml`\n- `${instance_id}` is the identifier you previously defined while setting up the plugin instance, here `my_gitlab_bot`\n- `${instance_path}` is the `path` defined in **Maubot Manager** \u003e **Instances** \u003e `my_gitlab_bot` \u003e `path`\n- `${room_id}` is the Matrix room identifier as defined in its URL, or under **Room Settings** \u003e **Advanced** \u003e **Internal room identifier**\n\nWhich gives for example, with the default configuration: \u003chttps://maubot.example.org/_matrix/maubot/plugin/my_gitlab_bot/webhooks?room=!XXXXXXXXXXXX\u003e.\n\nThen configure the `secret` token as previously defined.\n\nAfterwhile, configure the desired permissions, [enable SSL verification if needed](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#ssl-verification) and create the webhook.\n\nFinally, test your webhook and fix the configuration until you get a return status like `2xx`.\n\n_Gitlab webhooks documentation: \u003chttps://docs.gitlab.com/ee/user/project/integrations/webhooks.html\u003e._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaubot%2Fgitlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaubot%2Fgitlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaubot%2Fgitlab/lists"}