You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现GitHub新仓库创建时自动发送邮件通知?

实现GitHub新仓库创建后自动发送邮件通知的方案

方案一:修改现有仓库创建脚本,添加邮件发送逻辑

直接在你现有的Shell脚本里,在仓库创建成功后插入邮件发送步骤,是最直接的方式。

示例脚本(基于GitHub CLI gh)

#!/bin/bash

# 接收仓库名称和描述参数
REPO_NAME="$1"
DESCRIPTION="$2"
NOTIFY_EMAIL="your-alert@example.com"
GITHUB_USER="你的GitHub用户名"

# 创建GitHub仓库(public或private根据需求调整)
gh repo create "$REPO_NAME" --description "$DESCRIPTION" --public

# 检查仓库创建是否成功
if [ $? -eq 0 ]; then
    # 构建邮件内容
    SUBJECT="新GitHub仓库已创建: $REPO_NAME"
    BODY="仓库名称: $REPO_NAME
描述: $DESCRIPTION
仓库地址: https://github.com/$GITHUB_USER/$REPO_NAME"
    
    # 用sendmail发送邮件(需系统已配置邮件服务)
    echo -e "Subject: $SUBJECT\n\n$BODY" | sendmail "$NOTIFY_EMAIL"
    # 若使用mutt替代sendmail:
    # echo -e "$BODY" | mutt -s "$SUBJECT" "$NOTIFY_EMAIL"
else
    echo "仓库创建失败,未发送通知邮件"
fi

关键说明

  1. 依赖工具:确保系统已安装gh(GitHub CLI)并完成认证(gh auth login);邮件发送需依赖sendmail/mutt,且系统邮件服务(如postfix)配置正常。
  2. API调用替代方案:若不用gh,可直接调用GitHub API创建仓库(需提前生成个人访问令牌PAT):
curl -u "$GITHUB_USER:你的PAT" https://api.github.com/user/repos \
  -d '{"name":"'$REPO_NAME'","description":"'$DESCRIPTION'","private":false}'

方案二:用GitHub Webhook实现全局通知(适用于所有创建方式)

如果需要监控所有新仓库创建事件(不止你的脚本),可以通过GitHub Webhook触发邮件通知,需要一个能接收Webhook请求的服务。

步骤1:配置GitHub Webhook

  • 进入GitHub账号/组织的Settings → Webhooks → Add webhook
  • 设置Payload URL为你的服务地址(如http://你的服务器地址/cgi-bin/notify.sh)
  • 选择Content type为application/json
  • 选择触发事件为Repository → Created

步骤2:编写Webhook接收脚本(Shell CGI示例)

#!/bin/bash
echo "Content-Type: text/plain"
echo ""

# 读取GitHub发送的JSON数据
read -r POST_DATA
# 用jq解析仓库信息(需提前安装jq)
REPO_NAME=$(echo "$POST_DATA" | jq -r '.repository.name')
REPO_URL=$(echo "$POST_DATA" | jq -r '.repository.html_url')
REPO_DESC=$(echo "$POST_DATA" | jq -r '.repository.description')
NOTIFY_EMAIL="your-alert@example.com"

# 发送邮件
SUBJECT="新GitHub仓库已创建: $REPO_NAME"
BODY="仓库名称: $REPO_NAME
描述: $REPO_DESC
仓库地址: $REPO_URL"
echo -e "Subject: $SUBJECT\n\n$BODY" | sendmail "$NOTIFY_EMAIL"

echo "Notification sent"

关键说明

  • 需在服务器上配置CGI服务(如Apache/Nginx开启CGI支持),并确保脚本有执行权限。
  • 建议配置Webhook的Secret进行签名验证,避免恶意请求。

邮件服务配置补充

若系统默认邮件服务无法正常发送,可使用第三方SMTP服务(如Gmail、企业邮箱),推荐用msmtp工具:

  1. 安装msmtp并配置~/.msmtprc:
account default
host smtp.example.com
port 587
from your-sender@example.com
auth on
user your-sender@example.com
password 你的邮箱密码/应用密码
tls on
tls_starttls on
  1. 发送邮件的命令替换为:
echo -e "Subject: $SUBJECT\n\n$BODY" | msmtp "$NOTIFY_EMAIL"

内容的提问来源于stack exchange,提问作者Marshal Sriraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:10:59