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

能否仅通过URL触发GitHub Action并处理URL查询参数?

方案可行,具体实现思路如下

核心逻辑

让你的设备通过带参数的URL触发GitHub Action,再由Action完成参数处理,最后将处理后的参数转发请求至目标端点。

具体步骤

  1. 创建带参数触发的Workflow
    在GitHub仓库的.github/workflows目录下新建Workflow文件(比如relay.yml),配置支持workflow_dispatch触发并定义可接收参数:

    name: 参数中转与请求转发
    on:
      workflow_dispatch:
        inputs:
          param:
            description: '待传递的参数'
            required: true
            type: string
    
    jobs:
      relay:
        runs-on: ubuntu-latest
        steps:
          - name: 处理参数并转发请求
            env:
              TARGET_URL: '你的目标端点URL'
              INPUT_PARAM: ${{ github.event.inputs.param }}
            run: |
              # 按需添加参数处理逻辑,比如格式转换、字符串拼接
              PROCESSED_PARAM="处理后的_${INPUT_PARAM}"
              # 发送请求到目标端点,以curl为例
              curl -X POST "$TARGET_URL" -d "param=$PROCESSED_PARAM"
    
  2. 让设备触发Workflow
    由于设备仅支持发送带参数的GET请求,而GitHub的workflow_dispatch默认需要POST请求,可通过两种方式适配:

    • 方式一:借助中转服务转请求
      生成拥有repo权限的GitHub个人访问令牌(PAT),搭建一个简单的Serverless中转服务(比如用Node.js写一个接口),让设备发送带参数的GET请求到中转服务,由中转服务将参数封装为POST请求调用GitHub的Workflow触发API。
    • 方式二:用Issue事件触发
      修改Workflow监听Issue创建事件:
      on:
        issues:
          types: [opened]
      
      设备通过GET请求调用GitHub API创建Issue,将参数放在Issue标题(比如param=hello)中,Workflow在步骤中提取参数:
      INPUT_PARAM=$(echo "${{ github.event.issue.title }}" | grep -o "param=\w*" | cut -d'=' -f2)
      
  3. 参数处理与转发
    在Workflow的run步骤中完成参数的自定义处理,再使用curl或其他工具发送请求至目标端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:28