hub-ci-status

A reimplementation of the ci-status subcommand of hub(1) in JavaScript for checking the GitHub CI and checks status of a commit with Node.

Usage no npm install needed!

<script type="module">
  import hubCiStatus from 'https://cdn.skypack.dev/hub-ci-status';
</script>

README

Hub CI Status

Build Status Coverage Dependency Status Supported Node Version Version on NPM

A reimplementation of the ci-status subcommand of hub in JavaScript for querying the GitHub CI status and checks status of a commit using Node.

Introductory Examples

To get the combined CI and checks status of the checked out commit, invoke hub-ci-status in a git repository with a GitHub remote:

$ hub-ci-status
pending
$ echo $?
2

Status of Branch/Tag/Commit

To get the status of a particular commit, pass the name (any name suitable for git rev-parse) as an argument:

$ hub-ci-status mybranch
failure
$ echo $?
1

Wait for Pending

If the CI status or checks may not have completed, the -w/--wait option can be passed (with an optional timeout in seconds) to wait until the status is not pending:

$ hub-ci-status --wait 60
success
$ echo $?
0

By default, the process will exit as soon as any CI status or check fails. To wait until all statuses/checks have finished, add -W/--wait-all.

Verbose Output

For more verbose output, including the status context and target URL, pass the -v/--verbose option:

$ hub-ci-status -v
●	Test on Node.js * x64 on windows-latest        	https://github.com/kevinoid/hub-ci-status/runs/1808395138
●	Test on Node.js 10 x64 on windows-latest       	https://github.com/kevinoid/hub-ci-status/runs/1808395109
●	Test on Node.js 10 x64 on ubuntu-latest        	https://github.com/kevinoid/hub-ci-status/runs/1808395075
✔︎	Lint and Test on Node.js * x64 on ubuntu-latest	https://github.com/kevinoid/hub-ci-status/runs/1808388960
success

Note: This option can be passed twice to print progress messages for --wait to stderr.

Additional Features

This module supports a few features which are not supported by hub ci-status:

  • --wait flag allows waiting until the status is not pending, with a configurable timeout. (github/hub#1809)
  • --wait-all flag allows waiting until all statuses and checks are not pending (rather than exiting after first failure).

Installation

This package can be installed using npm, either globally or locally, by running:

npm install hub-ci-status

Contributing

Contributions are appreciated. Contributors agree to abide by the Contributor Covenant Code of Conduct. If this is your first time contributing to a Free and Open Source Software project, consider reading How to Contribute to Open Source in the Open Source Guides.

If the desired change is large, complex, backwards-incompatible, can have significantly differing implementations, or may not be in scope for this project, opening an issue before writing the code can avoid frustration and save a lot of time and effort.

License

This project is available under the terms of the MIT License. See the summary at TLDRLegal.