首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从GitLab管道向电报发送通知?

如何从GitLab管道向电报发送通知?
EN

Stack Overflow用户
提问于 2021-12-22 22:50:34
回答 2查看 4.5K关注 0票数 4

在我们的小型启动中,我们使用GitLab进行开发,使用电报进行开发人员和PO之间的内部通信。由于PO希望立即看到进度,所以我们已经设置了GitLab管道,以便在每次提交后在web服务器上部署预览版本。现在我们要扩大输油管道。因此,在部署之后,通过Telegram组发送通知。

所以问题是--这有可能吗?如果可能的话,怎么做?

编辑:既然我已经实现了,这不是一个真正的问题。我想在这里张贴答案,以便其他人也可以使用它。

EN

回答 2

Stack Overflow用户

发布于 2021-12-22 22:50:34

所以,我们将一步一步地完成:

  1. 创建一个电报机器人
  2. 将bot添加到电报组
  3. 查找电报组Id
  4. 通过GitLab管道发送消息

1.创建一个电报机器人

电报本身就有足够好的指示来说明这一点:

https://core.telegram.org/bots#6-botfather

指令没有明确说明任何内容,但是要生成它,您必须进入与BotFather的聊天。最后,您将得到一个机器人令牌,类似于110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

2.在电报组中加入bot

切换到Telegram组,并将创建的bot添加为成员(按名称查找bot )。

3.查找电报组Id

获取浏览器中bot的更新状态:https://api.telegram.org/bot<YourBOTToken>/getUpdates

在响应:... "chat": {"id": <YourGroupID>, ...中找到聊天id

有关更多细节,请参见:电报机器人-如何获得一个团体聊天的id?

4.通过GitLab管道发送消息

用curl命令发送消息。例如,可以为此目的扩展gitlab管道的现有阶段:

代码语言:javascript
复制
upload:
  stage: deploy
  image: alpine:latest
  script:
    - 'apk --no-cache add curl'
    - 'curl -X POST -H "Content-Type: application/json" -d "{\"chat_id\": \"<YourGroupID>\", \"text\": \"CI: new version was uploaded, see: https://preview.startup.com\"}" https://api.telegram.org/bot<YourBOTToken>/sendMessage '
  only:
    - main

记住修改YourBOTTokenYourGroupID,以及消息的文本。

*)我们在这里使用高寒码头映像,因此必须安装- 'apk --no-cache add curl'。对于其他图像,这可能必须以不同的方式完成。

票数 8
EN

Stack Overflow用户

发布于 2021-12-22 23:21:12

发送通知的一种简单方法(特别是在使用多个服务或聊天时)是使用报应

发送到一个电报频道:

代码语言:javascript
复制
apprise -vv --body="Notify telegram chat" \
  tgram://bottoken/ChatID1 \

这样就很容易一次从管道中通知许多服务,而不需要针对每个服务的API编写代码(apprise为您处理这个问题)。

代码语言:javascript
复制
image: python:3.9-slim # or :3.9-alpine if you prefer a smaller image
before_script:
  - pip install apprise # consider caching PIP_CACHE_DIR for performance
script: | 
  # Set a notification to multiple telegram chats, a yahoo email account, 
  # Slack, and a Kodi Server with a bit of added verbosity:
  apprise -vv --body="Notify more than one service" \
    tgram://bottoken/ChatID1/ChatID2/ChatIDN \
    mailto://user:password@yahoo.com \
    slack://token_a/token_b/token_c \
    kodi://example.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70455939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档