簡體   English   中英

將文件添加或更新到 Github 存儲庫時調用外部 Rest api

[英]Call external Rest api when a file is added or updated to a Github repository

所以,我有一個Github 存儲庫,其中一些文件將被手動添加或更新,或者通過從功能分支到主分支的合並。 我想知道每當將文件添加/更新到此 Github 存儲庫或從功能分支合並到主分支時,如何調用另一個外部微服務 Rest api 端點(.Net 6.0 端點)?

這些是自定義文件(consider.txt 文件) ,它們也需要發送到外部微服務 api 端點,以便該端點可以處理接收到的文件並將數據保存到數據庫。

有人可以幫助解決上述問題,以便我可以從 Github repo 推送修改/添加的文件來調用 Rest api 端點嗎?

我查看了此鏈接以尋求解決方案,但無法理解? 我可以使用 Github 操作來解決這個問題(以及如何?)或者是否有任何替代解決方案? 解決方案的任何鏈接也將有所幫助...謝謝..

這種情況下可能的工作流程:

  • 觸發文件推送(包括路徑和分支過濾器)
  • 使用file-changes-action准備有關添加和修改文件的數據
  • 根據之前的作業輸出運行一個矩陣,並使用http-request-action調用外部 API 端點並傳遞矩陣中的值。

例子:

name: 'Call REST API when a file is pushed'

on:
  push:
    paths:
      - '*.txt' # match '*.txt' files (created or updated)
    branches: [ main ] # match specific branch

jobs:
  prepare-files:
    runs-on: ubuntu-latest
    outputs:
      matrix-added: ${{ steps.file-changes.outputs.files_added }}
      matrix-modified: ${{ steps.file-changes.outputs.files_modified }}
    steps:
      - id: file-changes
        uses: trilom/file-changes-action@v1.2.4

  post-files-added:
    needs: prepare-files
    runs-on: ubuntu-latest
    strategy:
      matrix:
        file: ${{ fromJSON(needs.prepare-files.outputs.matrix-added) }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Echo file
        run: |
          echo ${{ matrix.file }} # to test if the correct file was passed

      - name: Make an API call
        uses: fjogeleit/http-request-action@v1
        with:
          url: 'https://postman-echo.com/post'
          method: 'POST'
          file: "${{ github.workspace }}/${{ matrix.file }}"

    # post-files-modified:
    # ...

其他參考資料:

此外,還有另一種可能的方法——您可以為您的存儲庫設置一個 GitHub webhook,它將在推送事件上觸發 API 端點。 有關詳細信息,請參閱自動將推送的文件從一個 GitHub 存儲庫復制到另一個(此示例是關於將文件復制到另一個存儲庫,但您的情況可以使用相同的方法)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM