#!/bin/bash owner_and_repo="$1" commit="$2" statuses_state=$( gh api "repos/$owner_and_repo/commits/$commit/status" \ | jq -r .state ) if [ "$statuses_state" == "failure" ]; then echo "failure" exit 1 fi check_runs_failed=$( gh api "repos/$owner_and_repo/commits/$commit/check-runs" \ | jq '[.check_runs[]] | any (.status == "completed" and .conclusion != "success")' ) if [ "$check_runs_failed" == "true" ]; then echo "failure" exit 1 fi check_runs_succeeded=$( gh api "repos/$owner_and_repo/commits/$commit/check-runs" \ | jq '[.check_runs[]] | all (.status == "completed" and .conclusion == "success")' ) if [ "$check_runs_succeeded" == "true" ]; then echo "$statuses_state" else echo "in_progress" fi