【问题标题】:Trigger workflow from external repo从外部仓库触发工作流
【发布时间】:2021-03-12 02:20:23
【问题描述】:

我可以触发基于推送到我的仓库的工作流

on:
  push

是否可以在推送到我无权访问的另一个公共仓库时触发工作流,例如phpmyadmin

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    我很确定答案是否定的,您不能以编程方式将一个 repo 订阅到另一个 repo 的事件。

    但是,您可以做的是运行scheduled job(每天一次,如果需要,可以更频繁地运行)来检查是否有任何更新。您可以将最后一个已知的 SHA 存储在您的存储库中,然后在操作检测到更新时通过 PR 或直接提交对其进行更新。

    这类似于https://dependabot.com/ 之类的工具所做的事情。

    【讨论】:

    • 我最终使用了你和@chandan-gupta 的解决方案,如果 SHA 发生变化,我会使用个人访问令牌进行存储库调度。谢谢!
    【解决方案2】:

    您可以使用“Repository_dispatch”触发器来触发任何工作流。下面的链接可能会有所帮助

     on:
            repository_dispatch:
                types: [start-example-workflow]
    

    使用该有效负载,您可以将请求发布到https://api.github.com/repos/:owner/:repo/dispatches 以触发工作流

    Accept:  application/vnd.github.everest-preview+json
    Content-Type: application/json
    Authorization: Bearer {{personal_access_token}}
    
    {
        "event_type": "my_event_type",
        "client_payload": {
            "example-key": "example-value"
        }
    }
    

    如果这对你有帮助,请告诉我。

    【讨论】:

      【解决方案3】:

      如果您无法访问这两个存储库,这可能没有帮助,但由于我还没有找到任何其他解决方案,所以我还是发布了它。

      解决方案可以在推送或任何其他事件上发生,它正在使用这个dispatch github action

      name: Trigger PR in PMS on release
      on: push
      
      jobs:
        build:
          name: Dispatch an update
          steps:
            - uses: mvasigh/dispatch-action@main
              with:
                token: ${{ secrets.GH_TOKEN }}
                repo: from-repository
                event_type: update_event
      

      然后从订阅的存储库中监听 event_type:

      name: Update event
      on:
        repository_dispatch:
          types: [update_event]
      
      jobs:
        build:
          steps:
            - run: yarn
            ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-13
        • 2022-10-17
        • 1970-01-01
        • 2020-06-10
        • 1970-01-01
        • 2022-10-13
        • 2021-01-06
        • 2019-10-27
        相关资源
        最近更新 更多