https://github.com/tetchel/action-io-generator
Moved to https://github.com/redhat-actions/common/tree/main/action-io-generator
https://github.com/tetchel/action-io-generator
actions github-actions
Last synced: 2 months ago
JSON representation
Moved to https://github.com/redhat-actions/common/tree/main/action-io-generator
- Host: GitHub
- URL: https://github.com/tetchel/action-io-generator
- Owner: tetchel
- License: mit
- Created: 2020-12-24T17:33:30.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-01-19T02:20:15.000Z (over 5 years ago)
- Last Synced: 2025-10-01T13:52:13.073Z (9 months ago)
- Topics: actions, github-actions
- Language: TypeScript
- Homepage:
- Size: 154 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## action-io-generator
[](https://github.com/tetchel/action-io-generator/actions?query=workflow%3ACI)
[](https://www.npmjs.com/package/@redhat-actions/action-io-generator)
[](https://github.com/tetchel/action-io-generator/tags)
[](./LICENSE)
This is a utility to generate JavaScript/TypeScript enums from an `action.yml` file. It can be invoked as a command-line tool or programmatically.
By using this tool, you can reduce duplication and the errors that come with it by allowing the `action.yml` to work as the single source of truth for your action's inputs and outputs. This reduces the maintainence required to add, edit, and remove inputs or outputs, and ensures everything is named correctly.
## Install
```bash
$ npm i -D @redhat-actions/action-io-generator
```
## Usage
```bash
$ npx action-io-generator --actionYml ./action.yml --outFile ./src/generated/inputs-outputs.ts
Loading action file from ./action.yml
Found 8 inputs and 0 outputs.
Outputting input and output enums to src/generated/inputs-outputs.ts
```
## Example
See [test](./test) for an example. [generated/inputs-outputs.ts](./test/generated/inputs-outputs.ts) is generated from [test.action.yml](/test/test.action.yml).
```yaml
inputs:
foo:
required: true
description: This is the foo input.
default: foo-default
```
becomes:
```js
export enum Inputs {
/**
* This is the foo input.
* Required: true
* Default: "foo-default"
*/
FOO = "foo",
}
```
## Options
The only required option is `-o / --outFile`. For example, `npx action-io-generator -o generated/inputs-outputs.ts`.
| Short | Long | Default | Description |
| ---- | ---- | ------- | ----------- |
| `-o` | `--outFile` | **None** | JS/TS file to write out enums to. The directory must exist. If the file exists, it is overwritten. |
| `-a` | `--actionYml` | `./action.yml` | Path to `action.yml` to process into enums. |
| `-s` | `--silent` | `false` | Produce no output, except errors to stderr. |
| `-w` | `--watch` | `false` | Keep running after generating once, and re-run the generator each time the `actionYml` is edited. |