# action-status

> Easily create commit statuses from GitHub Actions

Latest version **0.1.1** (published 2019-02-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install action-status
pnpm add action-status
yarn add action-status
bun add action-status
```

Provides the command `action-status`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.1 |
| Published | 2019-02-05 |
| First published | 2019-02-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 7.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Shawn Allen |
| Maintainers | shawnbot |
| Keywords | github, actions, github-actions |

## Links

- npm: https://www.npmjs.com/package/action-status
- Repository: https://github.com/shawnbot/action-status
- Homepage: https://github.com/shawnbot/action-status#readme
- Issues: https://github.com/shawnbot/action-status/issues
- npm.io page: https://npm.io/package/action-status

## Dependencies (4)

- [yargs](https://npm.io/package/yargs.md) ^12.0.5
- [invariant](https://npm.io/package/invariant.md) ^2.2.4
- [require-env](https://npm.io/package/require-env.md) ^0.2.1
- [@octokit/rest](https://npm.io/package/@octokit/rest.md) ^16.15.0

## Recent versions

- 0.1.1 (latest) — 2019-02-05
- 0.1.0 — 2019-02-05

## README

# action-status
`action-status` makes it easy to create [check statuses] in [GitHub Actions].

## Why?
Currently, each action in a GitHub Actions workflow has its status set automatically, and you can't change anything useful about the status (such as its short textual description or "Details" link URL) because it'll be overwritten when the action is resolved in the workflow. `action-status` makes it easy to create separate status checks with a unique name that can include more useful information, for instance:

* A short description noting why the action succeeded or failed;
* Intentionally "pending" statuses that indicate things to be fixed in a pull request before it can be merged, a la [Semantic Pull Requests](https://github.com/probot/semantic-pull-requests);
* Point directly to relevant URLs from the "Details" link, such as site deployments;
* Report code coverage with ASCII characters;
* And so on!

## Usage
There are three different ways to use it:

1. [As an npm dependency](#npm)
1. [With `npx`](#npx)
1. [As a GitHub Action](#github-action)

### npm
You can install `action-status` via npm with:

```sh
npm install --save --dev action-status
```

Then, in your package's [run-scripts] you can call it via `action-status`, e.g. if you publish to npm from Actions, you could do this:

```json
{
  "scripts": {
    "prepublish": "action-status --context=\"publish $npm_package_name\" --state=pending --desc=\"Publishing $npm_package_version...\"",
    "postpublish": "action-status --context=\"publish $npm_package_name\" --state=success --desc=\"Published $npm_package_version\"",
  },
  "devDependencies": {
    "action-status": "1.0.0"
  }
}
```

:warning: **Warning:** npm is run as `root` in GitHub Actions, which means that pre- and post- lifecycle scripts will not be run unless you explicitly call `npm` with the `--unsafe-perms` option. Be warned, though, that this makes it possible for any of your dependencies to run (in a `preinstall` script, for instance) arbitrary commands with access to your secrets, source, and git history.

### npx
Using npm's [npx command][npx] allows you to run `action-status` without explicitly declaring it as a dependency in your `package.json`:

```sh
npx action-status --context=ping --state=success
```

**Note:** This is really only useful if you're running it once, though, since `npx` will reinstall the package each time you call it.

### GitHub Action
You can call the `action-status` command via an action with:

```hcl
action "status" {
  uses = "shawnbot/action-status@master"
  args = ["--context=ping", "--state=success"]
  secrets = ["GITHUB_TOKEN"]
}
```

**Note:** You must enable the automatic `GITHUB_TOKEN` secret unless you're going to provide a different access token via `--token=$SOME_OTHER_SECRET`

[check statuses]: https://help.github.com/articles/about-status-checks/
[github actions]: https://github.com/features/actions
[run-scripts]: https://docs.npmjs.com/misc/scripts
[npx]: https://www.npmjs.com/package/npx

---
_Source: https://npm.io/package/action-status · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
