An open API service indexing awesome lists of open source software.

https://github.com/chillicream/nitro-fusion-validate


https://github.com/chillicream/nitro-fusion-validate

Last synced: 14 days ago
JSON representation

Awesome Lists containing this project

README

          

# Nitro Fusion Validate

A GitHub Action that validates GraphQL source schemas against the Nitro registry.

## Usage

```yaml
- uses: ChilliCream/nitro-fusion-validate@v16
with:
stage:
api-id:
api-key:
source-schema-files:
- ./src/SchemaA/schema.graphqls
- ./src/SchemaB/schema.graphqls
# Optional
comment-mode: none
legacy-v1-archive: ./path/to/fusion-v1.fgp
cloud-url:
```

## Inputs

| Name | Required | Description |
| --------------------- | -------- | ------------------------------------------------------------------------------- |
| `stage` | Yes | The name of the stage |
| `api-id` | Yes | The ID of the API |
| `api-key` | Yes | API key for authentication |
| `source-schema-files` | Yes | Paths to source schema files |
| `comment-mode` | No | Pull request feedback mode on failure: `comment`, `review`, or `none` (default) |
| `legacy-v1-archive` | No | The path to a Fusion v1 archive file. |
| `cloud-url` | No | The URL of the Nitro registry |

If you self-host Nitro or use a dedicated hosted instance, you can specify the `cloud-url` input to point to your instance.

## Pull Request comments

Use `comment-mode` to control pull request feedback behavior.

`comment-mode: comment` comments on the pull request - requires `issues: write` permissions

`comment-mode: review` creates a pull request review with a comment - requires `pull-requests: write` permissions

Example for `comment-mode: comment`:

```yaml
jobs:
validate:
permissions:
contents: read
issues: write
```

Example for `comment-mode: review`:

```yaml
jobs:
validate:
permissions:
contents: read
pull-requests: write
```

> Note: When you define job-level `permissions`, GitHub no longer applies the default permission set for that job. Make sure to explicitly include every permission the job needs (for example `contents: read`).