当前位置:首页 >> 博客

"GitHub 推送至Telegram:实现代码更新即时通知的简单指南

来源:本站时间:2025-07-23 16:16:47

在现代软件开发中,实时跟踪代码更新变得尤为重要。GitHub作为一个流行的代码托管平台,而Telegram则是一个即时通讯应用,两者结合可以让你在代码有更新时立即收到通知。以下是一个简单的指南,教你如何将GitHub上的代码更新自动推送至Telegram。

首先,你需要准备以下工具和软件:

1. GitHub账户

2. Telegram账户

3. 一个可以运行在本地或云端的Node.js环境

#步骤一:创建GitHub Webhook

1. 登录你的GitHub账户,进入你想要设置Webhook的仓库。

2. 点击“Settings”按钮,然后选择“Webhooks”。

3. 点击“Add webhook”按钮,然后填写一个钩子URL。这个URL将会是Telegram Bot的命令行接口,格式如下:`https://api.telegram.org/bot<你的TelegramBotToken>/sendMessage`

4. 在“Payload URL”中填写上述格式,并在“Content type”中选择“application/json”。

5. 设置触发事件,例如选择“Push events”。

6. 点击“Add webhook”。

#步骤二:创建Telegram Bot

1. 打开Telegram,搜索“@BotFather”并添加它。

2. 使用BotFather创建一个新的Bot,并获取你的Bot Token。

3. 回到Telegram,搜索并添加“@SendBot”。

4. 使用BotFather提供的Token,向“@SendBot”发送一个命令,如`/setapihash <你的API Hash>`,其中`<你的API Hash>`是“@SendBot”提供的API Hash值。

#步骤三:编写Node.js脚本

1. 在本地创建一个新的Node.js项目,并安装必要的依赖,如`axios`和`dotenv`。

2. 创建一个`.env`文件,在其中添加你的Telegram Bot Token和API Hash。

3. 编写一个Node.js脚本,用于监听GitHub Webhook事件,并在有新代码提交时向Telegram发送消息。

```javascript

require('dotenv').config();

const axios = require('axios');

const webhookUrl = process.env.GITHUB_WEBHOOK_URL;

const botToken = process.env.TELEGRAM_BOT_TOKEN;

const apiHash = process.env.TELEGRAM_API_HASH;

const handleWebhook = async (webhookData) => {

const message = `New commit on GitHub: ${webhookData.repository.full_name}`;

const response = await axios.post(`https://api.telegram.org/bot${botToken}/sendMessage`, {

chat_id: 'YOUR_TELEGRAM_CHAT_ID',

text: message,

parse_mode: 'Markdown'

});

console.log(response.data);

};

axios.get(webhookUrl).then(response => {

response.data.forEach(data => {

handleWebhook(data);

});

}).catch(error => {

console.error(error);

});

```

#步骤四:部署脚本

1. 将你的Node.js脚本部署到云端或本地服务器。

2. 确保服务器上安装了Node.js环境。

3. 运行你的脚本,使其能够持续监听GitHub Webhook事件。

通过以上步骤,你就可以将GitHub上的代码更新实时推送至Telegram了。这样,无论何时何地,你都可以第一时间了解到代码的变化。