{"id":19207187,"url":"https://github.com/kestra-io/validate-action","last_synced_at":"2025-07-16T11:41:36.909Z","repository":{"id":103405864,"uuid":"596101693","full_name":"kestra-io/validate-action","owner":"kestra-io","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-17T14:52:23.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-21T15:48:32.546Z","etag":null,"topics":["github-actions","kestra"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kestra-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-01T13:23:18.000Z","updated_at":"2024-11-12T07:28:13.000Z","dependencies_parsed_at":"2024-08-07T11:59:54.262Z","dependency_job_id":"5a4d82cf-e2b1-42c1-b987-cb8e23213731","html_url":"https://github.com/kestra-io/validate-action","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/kestra-io/validate-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kestra-io%2Fvalidate-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kestra-io%2Fvalidate-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kestra-io%2Fvalidate-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kestra-io%2Fvalidate-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kestra-io","download_url":"https://codeload.github.com/kestra-io/validate-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kestra-io%2Fvalidate-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265506552,"owners_count":23778767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-actions","kestra"],"created_at":"2024-11-09T13:18:43.828Z","updated_at":"2025-07-16T11:41:36.859Z","avatar_url":"https://github.com/kestra-io.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Validate Action\n\nOfficial GitHub Action to create CI/CD pipelines that validate [Flows](https://kestra.io/docs/workflow-components/flow) before deploying to your Kestra server.\n\nThis action could be used within a workflow that runs when a `Pull Request` is triggered.\n\nThe Action version is based on the Kestra Version. Only Kestra v0.6.1+ is supported.\n\n## What does the action do ?\n\n* Take a folder in input containing your `Flow` **or** `Template` as yaml files. The action look recursively meaning\n  resources in subfolder will be validated too.\n* For each resource, 2 outputs are possible:\n    * '✔️ flow-id' when your resource is validated.\n    * '❌ filename' when an error was found in your resource. Following by the error message.\n\n## Usage\n\n### Inputs\n\n| Inputs        | Required           | Default | Description                                                                |\n|---------------|--------------------|---------|----------------------------------------------------------------------------|\n| ``directory`` | :heavy_check_mark: |         | Folder containing your resources                                           |\n| ``resource``  | :heavy_check_mark: |         | Resource you want to update in your namespace, can be `flow` or `template` |\n| ``server``    | :x:                |         | URL of your Kestra server, if none is provided, validation is done locally |\n| ``user``      | :x:                |         | User for the basic auth                                                    |\n| ``password``  | :x:                |         | Password for the basic auth                                                |\n| ``apiToken``  | :x:                |         | API token for EE auth                                                      |\n| ``tenant``    | :x:                |         | Tenant identifier (EE only, when multi-tenancy is enabled)                 |\n\n### Server-side validation\n\nThe validation can be done locally with the client, but if you have custom plugin or want your `Flows` to be validated\nwith TaskDefaults included, it may be more interesting to validate your resources on the server-side.\n\n#### Differences between server-side and client-side validation\n\n| Validation         | Server-side        | Client-side        | \n|--------------------|--------------------|--------------------|\n| Format             | :heavy_check_mark: | :heavy_check_mark: |\n| Plugins properties | :heavy_check_mark: | :x:                |\n| Customs plugin     | :heavy_check_mark: | :x:                |\n| Flows PluginDefaults | :heavy_check_mark: | :x:                |\n\n### Auth\n\nDepending on your Kestra edition, you may need to include `user` and `password` to authenticate\non the server.\n\n### Example\n\nExample with `Flows`, validated on the `server-side`.\n\n```yaml\n      - name: Checkout repo content\n        uses: actions/checkout@v4\n\n      - name: flow update namespace action\n        uses: kestra-io/validate-action@master\n        with:\n          resource: flow\n          directory: ./kestra/flows\n          server: https:/kestra.io\n```\n\nExample with `Templates`, validated locally with the `Kestra Client`.\n\n```yaml\n      - name: Checkout repo content\n        uses: actions/checkout@v4\n\n      - name: template update namespace action\n        uses: kestra-io/validate-action@master\n        with:\n          resource: template\n          directory: ./kestra/templates\n```\n\nRead more in the documentation [here](https://kestra.io/docs/version-control-cicd/cicd/github-action).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkestra-io%2Fvalidate-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkestra-io%2Fvalidate-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkestra-io%2Fvalidate-action/lists"}