当前位置:首页 >> 博客

教你如何轻松将GitHub推送同步到Telegram

来源:本站时间:2025-07-04 06:12:02

在现代软件开发中,GitHub和Telegram都是非常受欢迎的工具。GitHub作为代码托管和版本控制平台,而Telegram则以其即时通讯功能广受欢迎。许多开发者希望能够将GitHub上的代码更新自动同步到Telegram,以便于团队成员或利益相关者及时接收通知。以下是一篇详细介绍如何将GitHub推送同步到Telegram的文章。

我们需要准备以下工具和软件:

1. GitHub账户

2. Telegram账户

3. 一个可以运行在本地或云服务器上的Python环境

4. 一个可以接收GitHub Webhooks的HTTP服务器

第一步:配置GitHub Webhook

1. 在GitHub上,选择你想要配置Webhook的仓库。

2. 点击“Settings”按钮,然后在左侧菜单中找到“Webhooks”。

3. 点击“Add webhook”按钮,在“Payload URL”中输入你的HTTP服务器地址,比如http://yourserver.com/webhooks/github

4. 选择触发Webhook的事件,如“Create”、“Delete”、“Update”等。

5. 添加一个Secret,用于验证Webhook的有效性。

6. 点击“Add webhook”完成配置。

第二步:设置HTTP服务器接收Webhook

在这个步骤中,我们需要编写一个简单的Python脚本来接收GitHub的Webhook请求。

``python

from flask import Flask, request, jsonify

import requests

app = Flask(__name__)

@app.route('/webhooks/github', methods=['POST'])

def github_webhook():

if request.is_json:

payload = request.get_json()

secret = request.headers.get('X-Hub-Signature')

教你如何轻松将GitHub推送同步到Telegram

验证Webhook的Secret

if verify_secret(payload, secret):

处理推送信息

handle_push_notification(payload)

return jsonify({'status': 'success'}), 200

return jsonify({'status': 'error'}), 400

def verify_secret(payload, secret):

这里可以根据你的需要实现验证逻辑

return True

def handle_push_notification(payload):

将GitHub的推送信息发送到Telegram

bot_token = 'YOUR_TELEGRAM_BOT_TOKEN'

chat_id = 'YOUR_TELEGRAM_CHAT_ID'

url = f'https://api.telegram.org/bot{bot_token}/sendMessage'

text = format_push_notification(payload)

requests.post(url, data={'chat_id': chat_id, 'text': text})

def format_push_notification(payload):

根据实际需要格式化推送信息

return "New commit pushed to GitHub!"

if __name__ == '__main__':

app.run(host='0.0.0.0', port=8080)`

第三步:运行HTTP服务器

将上述Python脚本保存为webhook_server.py,然后在你的服务器上运行它。确保服务器可以接收来自GitHub的Webhook请求。

第四步:通知Telegram

handle_push_notification函数中,我们使用Telegram的API将推送信息发送到指定的聊天室。你需要替换YOUR_TELEGRAM_BOT_TOKENYOUR_TELEGRAM_CHAT_ID`为你的Telegram机器人令牌和聊天室ID。

每当有新的推送发生时,GitHub会将信息发送到你的HTTP服务器,然后服务器会将这些信息同步到Telegram,让你的团队或利益相关者能够即时收到通知。