{"id":21534534,"url":"https://github.com/winseros/gitlabtelegramchannel","last_synced_at":"2026-04-21T13:01:41.368Z","repository":{"id":81337514,"uuid":"157339247","full_name":"winseros/GitlabTelegramChannel","owner":"winseros","description":"A telegram bot for translating GitLab hook events into Telegram messages","archived":false,"fork":false,"pushed_at":"2019-02-08T05:41:04.000Z","size":185,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T07:11:28.751Z","etag":null,"topics":["gitlab","telegram","telegram-bot","telegram-bot-api"],"latest_commit_sha":null,"homepage":"","language":"C#","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/winseros.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":"2018-11-13T07:36:23.000Z","updated_at":"2023-09-08T17:47:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"848c5ff1-1fa1-4194-b0c1-79452bd31f49","html_url":"https://github.com/winseros/GitlabTelegramChannel","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winseros%2FGitlabTelegramChannel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winseros%2FGitlabTelegramChannel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winseros%2FGitlabTelegramChannel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winseros%2FGitlabTelegramChannel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winseros","download_url":"https://codeload.github.com/winseros/GitlabTelegramChannel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244102855,"owners_count":20398386,"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":["gitlab","telegram","telegram-bot","telegram-bot-api"],"created_at":"2024-11-24T03:11:08.985Z","updated_at":"2026-04-21T13:01:36.337Z","avatar_url":"https://github.com/winseros.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gitlab Telegram Channel\n\nThe application integrating [GitLab](https://about.gitlab.com/) with [Telegram](https://telegram.org/).\n\n## How it works\nThe application listens for [GitLab webhooks](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html) and calls the Telegram [Bot API](https://core.telegram.org/bots/api#available-methods).\n\n## Which Webhook events are supported\n* [Comment on merge request](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-merge-request)\n* [Comment on code snippet](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-code-snippet)\n* [Merge request events](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#merge-request-events)\n* [Pipeline events](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#pipeline-events) (`'failed'` event only)\n\n## How to setup\n1) Plan the endpoint for the application to run.\n2) Setup GitLab webhooks and obtain a [GitLab secret token](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#secret-token). Use the following url as a webhook target: `\u003cyour_endpoint\u003e/gitlab_hook`, e.g. https://my-hook-endpoint.com/gitlab_hook\n3) [Setup](https://core.telegram.org/bots#6-botfather) a Telegram bot and obtain a `Bot token`\n4) [Setup](https://telegram.org/faq_channels) a Telegram channel to which your bot would post messages\n5) Configure and deploy the app, see the `Configuration reference` section below\n\n## Configuring\n\n### If you're familiar with the [.NET Core configuration](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2) framework\n\nUse any of the standard ways to provide the app configuration: \n* appsettigns.json \n* appsettings.{environment}.json \n* environment variables\n* command line arguments\n\n### If not\n\nThere are several ways to configure a .NET Core application\n\n1) `appsettings.json` file - normally contains the most of the configuration.\n2) `appsettings.{environment}.json` file - may be used to make some environment-dependent configuration overrides. The environment name normally comes from the `ASPNETCORE_ENVIRONEMNT` environment variable or from an `--environment` command line arg. By-default the environment name is `Production`, so the filename would be the `appsettings.production.json`.\n3) Environment variables. Every setting from the `appsettings.json` may be overriden by an environment variable, having a name, same to the setting name in  `appsettings.json`. The `:` symbol in a variable name is used as a hierarchy level separator. E.g. configuration setting `TGram \u003e Connection \u003e Timeout` may be overriden by an environemnt variable `TGRAM:CONNECTION:TIMEOUT`.\n4) Command line arguments. Every setting from the `appsettings.json` may be overriden by a command-line key. The `:` symbol in a key name is used as a hierarchy-level separator. E.g. configuration setting `TGram \u003e Connection \u003e Timeout` may be overriden by a `--tgram:connection:timeout` parameter.\n\n## Running the app\n1) Ensure you have the [runtime of a compatible version](https://dotnet.microsoft.com/download/dotnet-core/2.2) installed. At the moment the application was developed, the `2.2.x` version of the runtime was current. Pay attention you don't need the whole SDK to run the app - a bare runtime is enough.\n2) run `dotnet TGramWeb.dll`, optionally providing command-line args. e.g: `dotnet TGramWeb.dll --urls http://localhost:9000 --environment azure`\n\n## Configuration reference\n### Listen addresses\nA set of addresses the app would be listening at. A semicolon `;` may be used as a separator for multiple addresses. E.g. `http://localhost:5000;https://localhost:5001`\n\n| appsettings.json | Command line | Env variable    |\n|------------------|--------------|-----------------|\n| n/a              | --urls       | ASPNETCORE_URLS |\n\n### Runtime environment\nDetermines the application environment. The default value is `Production`\n\n| appsettings.json | Command line  | Env variable           |\n|------------------|---------------|------------------------|\n| n/a              | --environment | ASPNETCORE_ENVIRONMENT |\n\n### Gitlab secure token\nA secure token you obtain when configuring a gitlab web hook.\n\n| appsettings.json | Command line   | Env variable |\n|------------------|----------------|--------------|\n| Gitlab\u003eToken     | --gitlab:token | GITLAB:TOKEN |\n\n### Telegram API endpoint\nAddress of the telegram API. Normally `https://api.telegram.org`\n\n| appsettings.json | Command line     | Env variable   |\n|------------------|------------------|----------------|\n| TGram\u003eEndpoint   | --tgram:endpoint | TGRAM:ENDPOINT |\n\n### Telegram bot token\nTelegram bot token you obtain when creating a bot.\n\n| appsettings.json | Command line   | Env variable |\n|------------------|----------------|--------------|\n| TGram\u003eToken      | --trgram:token | TGRAM:TOKEN  |\n\n### Telegram channel\nTelegram channel name. E.g. `@mytgramchannel`\n\n| appsettings.json | Command line    | Env variable  |\n|------------------|-----------------|---------------|\n| TGram\u003eChannel    | --tgram:channel | TGRAM:CHANNEL |\n\n### Telegram API connection timeout\nConnection timeout when trying to send a message to telegram.\n\n| appsettings.json         | Command line               | Env variable             |\n|--------------------------|----------------------------|--------------------------|\n| TGram\u003eConnection\u003eTimeout | --tgram:connection:timeout | TGRAM:CONNECTION:TIMEOUT |\n\n### Telegram API connection attempts\nNumber of attempts to send a message to telegram before giving up.\n\n| appsettings.json          | Command line                | Env variable              |\n|---------------------------|-----------------------------|---------------------------|\n| TGRAM:CONNECTION:ATTEMPTS | --tgram:connection:attempts | TGRAM:CONNECTION:ATTEMPTS |\n\n### Telegram API connection interval\nAn interval between telegram call attempts.\n\n| appsettings.json          | Command line                | Env variable              |\n|---------------------------|-----------------------------|---------------------------|\n| TGram\u003eConnection\u003eInterval | --tgram:connection:interval | TGRAM:CONNECTION:INTERVAL |\n\n### Internal daemon address\nA localhost address used to communicate between the web server and internal message handlers.\n\n| appsettings.json | Command line     | Env variable   |\n|------------------|------------------|----------------|\n| Daemon\u003eAddress   | --daemon:address | DAEMON:ADDRESS |\n\n### Number of internal message handlers\n\n| appsettings.json   | Command line         | Env variable       |\n|--------------------|----------------------|--------------------|\n| Daemon\u003eThreadCount | --daemon:threadcount | DAEMON:THREADCOUNT |\n\n### Serilog\n[Serilog](https://serilog.net) standard configuration. [See here](https://github.com/serilog/serilog-settings-configuration).\n\n| appsettings.json | Command line  | Env variable |\n|------------------|---------------|--------------|\n| Serilog\u003e...      | --serilog:... | SERILOG:...  |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinseros%2Fgitlabtelegramchannel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinseros%2Fgitlabtelegramchannel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinseros%2Fgitlabtelegramchannel/lists"}