文章

github actions 发送Axios请求并获取JSON数据

1.推送的时候调用其他webhook 或任意http请求

以下是一个模板

name: Axios

on:
  push:
    branches:
      - main# 或者你使用的是哪个分支

jobs:
  axios-action:
    runs-on: ubuntu-latest
    steps:
      - name: Call Auth API
        uses: actionsflow/axios@v1
        id: api
        with:
          url: https://example.com/api/token
          method: "GET"
          # basic-auth: "${{ secrets.username }}:${{ secrets.password }}"
      - run: echo ${{ steps.api.outputs.data }} # 打印数据
      # - run: echo ${{ steps.api.outputs.data.data.token }}

      #- name: Get current timestamp 获取当前时间戳
      #  id: get_timestamp
      #  run: echo "BUILD_TIME=$(date +'%s')" >> $GITHUB_ENV
      #- run: echo ${{ env.BUILD_TIME }}

      - name: Extract JSON Property 获取JSON数据
        id: extract-json
        run: |
          getToken=$(echo '${{ steps.api.outputs.data }}' | jq -r '.data.token')
          echo "token=$getToken" >> $GITHUB_ENV  # 添加到环境变量里

      - name: Call API
        uses: actionsflow/axios@v1
        id: api2
        with:
          url: https://example.com/api/user
          method: "POST"
          data: '{ "usename": "your_name" }'
          headers: '{ "Authorization": "Bearer ${{ env.token }}" }'

获取JSON数据那里的代码 getToken=$(echo '${{ steps.api.outputs.data }}' | jq -r '.data.token')

其中 steps.api.outputs.data 这个是获取上一步ID 请求的响应数据,比如返回的数据结构为

{
  "code": 0,
  "data": {
    "token": '123456789',
    "expiration": 1724065758
  }
}

要获取expiration 这个属性值,则修改jq -r '.data.token'jq -r '.data.expiration' 即可

许可协议:  CC BY 4.0