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

能否在创建GitHub团队仓库时直接添加Discord机器人生成的Webhook?

问题

想在创建团队仓库时直接添加Discord机器人生成的Webhook,但在GitHub文档里没找到相关示例,不确定是否可行。当前创建仓库的代码如下:

const request = await fetch(newUrl, {
            headers: {
                "Accept": "application/vnd.github+json",
                'authorization': 'Bearer ' + getStringEnv("GITHUB_TOKEN"),
                'content-type': 'application/json',
                'X-GitHub-Api-Version': '2022-11-28'
            },
            method: "POST",
            body: JSON.stringify({
                name: name,
                description: description,
                private: true
            })
        })
        console.log(await request.json())
    }catch (e){
        console.log(e)
    }

已查阅GitHub Webhook事件与负载相关文档。

解答

无法在创建仓库的API请求中直接添加Webhook。GitHub的仓库创建接口(无论是组织仓库还是个人仓库)并未提供直接配置Webhook的参数,必须分两步操作:

  1. 先调用创建仓库的API完成仓库创建
  2. 再调用Webhook创建接口,为新仓库添加Discord的Webhook

修改后的代码示例如下:

try {
    // 第一步:创建仓库
    const createRepoRes = await fetch(newUrl, {
        headers: {
            "Accept": "application/vnd.github+json",
            'authorization': 'Bearer ' + getStringEnv("GITHUB_TOKEN"),
            'content-type': 'application/json',
            'X-GitHub-Api-Version': '2022-11-28'
        },
        method: "POST",
        body: JSON.stringify({
            name: name,
            description: description,
            private: true
        })
    })
    const repoData = await createRepoRes.json();
    console.log("仓库创建完成:", repoData);

    // 第二步:添加Discord Webhook
    const webhookUrl = "你的Discord机器人生成的Webhook地址"; // 替换为实际地址
    const addWebhookRes = await fetch(`https://api.github.com/repos/${repoData.full_name}/hooks`, {
        headers: {
            "Accept": "application/vnd.github+json",
            'authorization': 'Bearer ' + getStringEnv("GITHUB_TOKEN"),
            'content-type': 'application/json',
            'X-GitHub-Api-Version': '2022-11-28'
        },
        method: "POST",
        body: JSON.stringify({
            name: "web",
            active: true,
            events: ["push", "pull_request"], // 按需选择需要触发的事件
            config: {
                url: webhookUrl,
                content_type: "application/json"
            }
        })
    })
    const webhookData = await addWebhookRes.json();
    console.log("Webhook添加完成:", webhookData);
} catch (e) {
    console.log("操作失败:", e);
}

关键参数说明

  • name:固定填web,表示这是一个HTTP Webhook
  • events:指定触发Webhook的GitHub事件,比如push(代码推送)、pull_request(PR操作)等,可根据需求调整
  • config.url:替换为Discord机器人提供的Webhook地址
  • config.content_type:固定填application/json,确保GitHub以JSON格式发送负载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:10:33