--- date: "2016-12-01T16:00:00+02:00" slug: "webhooks" sidebar_position: 30 aliases: - /zh-tw/webhooks --- # Webhooks Gitea 支援倉庫事件的 webhooks。這可以由倉庫管理員在設置頁面 `/:username/:reponame/settings/hooks` 中配置。webhooks 也可以在每個組織和整個系統範圍內配置。 所有事件推送都是 POST 請求。目前支持的方法有: - Gitea(也可以是 GET 請求) - Gogs - Slack - Discord - Dingtalk - Telegram - Microsoft Teams - Feishu - Wechatwork - Packagist ### 事件信息 :::warning 自 Gitea 1.13.0 起,payload 中的 `secret` 字段已棄用,並將在 1.14.0 中刪除:https://github.com/go-gitea/gitea/issues/11755 ::: 以下是 Gitea 將發送到 Payload URL 的事件信息示例: ```http X-GitHub-Delivery: f6266f16-1bf3-46a5-9ea4-602e06ead473 X-GitHub-Event: push X-Gogs-Delivery: f6266f16-1bf3-46a5-9ea4-602e06ead473 X-Gogs-Event: push X-Gitea-Delivery: f6266f16-1bf3-46a5-9ea4-602e06ead473 X-Gitea-Event: push ``` ```json { "secret": "3gEsCfjlV2ugRwgpU#w1*WaW*wa4NXgGmpCfkbG3", "ref": "refs/heads/develop", "before": "28e1879d029cb852e4844d9c718537df08844e03", "after": "bffeb74224043ba2feb48d137756c8a9331c449a", "compare_url": "http://localhost:3000/gitea/webhooks/compare/28e1879d029cb852e4844d9c718537df08844e03...bffeb74224043ba2feb48d137756c8a9331c449a", "commits": [ { "id": "bffeb74224043ba2feb48d137756c8a9331c449a", "message": "Webhooks Yay!", "url": "http://localhost:3000/gitea/webhooks/commit/bffeb74224043ba2feb48d137756c8a9331c449a", "author": { "name": "Gitea", "email": "someone@gitea.io", "username": "gitea" }, "committer": { "name": "Gitea", "email": "someone@gitea.io", "username": "gitea" }, "timestamp": "2017-03-13T13:52:11-04:00" } ], "repository": { "id": 140, "owner": { "id": 1, "login": "gitea", "full_name": "Gitea", "email": "someone@gitea.io", "avatar_url": "https://localhost:3000/avatars/1", "username": "gitea" }, "name": "webhooks", "full_name": "gitea/webhooks", "description": "", "private": false, "fork": false, "html_url": "http://localhost:3000/gitea/webhooks", "ssh_url": "ssh://gitea@localhost:2222/gitea/webhooks.git", "clone_url": "http://localhost:3000/gitea/webhooks.git", "website": "", "stars_count": 0, "forks_count": 1, "watchers_count": 1, "open_issues_count": 7, "default_branch": "master", "created_at": "2017-02-26T04:29:06-05:00", "updated_at": "2017-03-13T13:51:58-04:00" }, "pusher": { "id": 1, "login": "gitea", "full_name": "Gitea", "email": "someone@gitea.io", "avatar_url": "https://localhost:3000/avatars/1", "username": "gitea" }, "sender": { "id": 1, "login": "gitea", "full_name": "Gitea", "email": "someone@gitea.io", "avatar_url": "https://localhost:3000/avatars/1", "username": "gitea" } } ``` ### 示例 這是一個如何使用 webhooks 在推送請求到倉庫時運行 php 腳本的示例。 在您的倉庫設置中,webhooks 下,設置一個 Gitea webhook,如下所示: - 目標 URL: http://mydomain.com/webhook.php - HTTP 方法: POST - POST 內容類型: application/json - Secret: 123 - 觸發事件: 推送事件 - 活躍: 已勾選 現在在您的服務器上創建 php 文件 webhook.php ```php