본문 바로가기
공부/Git

[Github Workflow API] id 조회 & 실행 (dispatch)

by haejang 2024. 4. 19.
728x90
728x90

 

 

# Github Action Workflow id 조회

curl \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token $GH_ACCESS_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME
  
ex)  
curl \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token $GH_ACCESS_TOKEN" \
  https://api.github.com/repos/suminhong/terraform/actions/workflows/cicd.yaml

 

output json의 스키마는 아래와 같다.

{
  "id": "",
  "node_id": "",
  "name": "",
  "path": "",
  "state": "",
  "created_at": "",
  "updated_at": "",
  "url": "",
  "html_url": "",
  "badge_url": ""
}

 

여기서 확인되는 id값을 가지고 workflow를 api로 실행시킬 수 있다.

 

# Github Action Workflow 실행

참고로 workflow_dispatch로 실행될 수 있는 workflow만 트리거 가능하다.

workflow 파일에 아래와 같은 조건이 있으면 된다.

on:
  workflow_dispatch:

 

curl 명령은 아래와 같다.

curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token $GH_ACCESS_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_ID/dispatches \
  -d '{"ref":"main"}'

 

만약 workflow_dispatch 시 인풋이 들어가야 한다면 아래와 같이 넣을 수 있다.

curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token $GH_ACCESS_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_ID/dispatches \
  -d '{"ref":"main","inputs":{"input_key":"input_value"}}'

 

 

 

 

728x90
728x90

댓글