管理
触发自动化 webhook
为一个具有 webhook 触发器的自定义自动化排队一次运行,而不必等待该触发器配置的事件。适用于从 CI/CD 流水线、发布脚本或任何其他已经发送事件的系统运行自动化。只能触发配置了 webhook 触发器的自定义自动化;使用其他触发器的自动化会返回 404 响应。
请使用具有写入访问权限的组织 API 密钥进行身份验证。
POST
/
v2
/
workflow
/
{projectId}
/
{workflowSchemaId}
/
webhook
触发自动化 webhook
curl --request POST \
--url https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"runId": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}使用此端点运行一个配置为 Webhook 触发器的自定义自动化。每次请求会将一次运行加入队列,该运行使用自动化保存的 prompt 并读取仓库的完整历史记录。请求体会被忽略。
此端点仅支持配置了 webhook 触发器的自定义自动化。预定义自动化以及使用其他任何触发器的自动化都会返回
在控制台中打开自动化页面,点击具有 webhook 触发器的自定义自动化上的 设置按钮。触发器卡片会显示完整的 webhook URL,以及用于
每当代码合并到
此端点与触发更新和触发自动化共享速率限制:每个组织每 10 秒最多 10 次请求。每次入队运行消耗的额度与其他任何自定义自动化运行相同。请参见额度定价。
404 响应。若要按需触发一个计划型自定义自动化,请改用触发自动化。
用例
- CI/CD 流水线:在每次合并到
main或发布之后运行自定义自动化,无需等待计划运行。 - 发布事件:在打出标签或发布新 SDK 版本时,从发布脚本运行自定义自动化。
- 内部工具:从内部仪表板、Slack 命令或已有的计划任务中触发自动化。
获取 webhook URL 和身份验证请求头
Authorization: Bearer <api-key> 请求头模板的 Copy auth header 操作。
将 <api-key> 替换为具有写入权限且未过期的组织 API 密钥。在 API keys 页面创建或管理密钥。自动化不会为你创建、存储或轮换密钥。
示例
main 时,从 GitHub Action 触发一个 webhook 自动化:
.github/workflows/trigger-docs.yml
on:
push:
branches: [main]
jobs:
trigger:
runs-on: ubuntu-latest
steps:
- run: |
curl -fsS -X POST \
"https://api.mintlify.com/v2/workflow/$PROJECT_ID/$WORKFLOW_ID/webhook" \
-H "Authorization: Bearer ${{ secrets.MINTLIFY_API_KEY }}"
env:
PROJECT_ID: ${{ vars.MINTLIFY_PROJECT_ID }}
WORKFLOW_ID: ${{ vars.MINTLIFY_WORKFLOW_ID }}
速率限制
授权
路径参数
⌘I
触发自动化 webhook
curl --request POST \
--url https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mintlify.com/v2/workflow/{projectId}/{workflowSchemaId}/webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"runId": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}