From 681be9cec827297f9c77b0c80d75891fe20b8ea1 Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 13:23:23 +0530 Subject: [PATCH 01/14] feat(*): add contributor guidelines --- .github/pull_request_template.md | 22 ++++++++++++++++++++++ .github/workflows/main.yml | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 68570ae..f907802 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -35,3 +35,25 @@ Remove this section if this change applies to all flows or to the documentation If there are no setup requirements, you can remove this section. Thank you for your contribution. ❤️ --> + +### Contributor Checklist ✅ + +- [ ] PR Title follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) +- [ ] Unit Tests added or updated to cover the change. +- [ ] Documentation updated (plugin docs). +- [ ] Setup instructions included if needed (API keys, accounts, etc.). + +⚙️ **Properties** +- [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. + +🌐 **HTTP** +- [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client` + +📦 **JSON** +- [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`) + +✨ **New plugins/subplugins** +- [ ] Icons added in `src/main/resources/icons` + - `plugin-icon.svg` + - One icon per package, e.g. `io.kestra.plugin.apify.svg` + - For subpackages, e.g. `io.kestra.plugin.aws.s3`, add `io.kestra.plugin.aws.s3.svg` diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5672ab9..15e46a3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,35 @@ on: - "false" jobs: + checklist: + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' && github.repository != 'kestra-io/plugin-template' + steps: + - name: Verify PR checklist + uses: actions/github-script@v7 + with: + script: | + const org = "kestra-io"; + const username = context.payload.pull_request.user.login; + + try { + await github.rest.orgs.checkMembershipForUser({ org, username }); + core.info(`User ${username} is a member of ${org}, skipping checklist validation.`); + return; + } catch (e) { + core.info(`User ${username} is not in ${org}, checklist validation required.`); + } + + const body = context.payload.pull_request.body || ""; + const unchecked = body.match(/- \[ \]/g); + if (unchecked) { + core.setFailed("Some checklist items are still unchecked. Please complete them."); + } else { + core.info("All checklist items are checked."); + } + check: + needs: checklist uses: kestra-io/actions/.github/workflows/plugins.yml@main with: skip-test: ${{ github.event.inputs.skip-test == 'true' }} From cdbe65a64061ab64e9975590722c8b490c5c4439 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:37:31 +0530 Subject: [PATCH 02/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f907802..56d7f0e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -39,7 +39,7 @@ Thank you for your contribution. ❤️ --> ### Contributor Checklist ✅ - [ ] PR Title follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) -- [ ] Unit Tests added or updated to cover the change. +- [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). - [ ] Documentation updated (plugin docs). - [ ] Setup instructions included if needed (API keys, accounts, etc.). From 64c8dbd57ba77ee16fb7485a2cad7b6e3cf7aaf7 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:37:45 +0530 Subject: [PATCH 03/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 56d7f0e..557279a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -38,7 +38,7 @@ Thank you for your contribution. ❤️ --> ### Contributor Checklist ✅ -- [ ] PR Title follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) +- [ ] PR Title and commits follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) - [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). - [ ] Documentation updated (plugin docs). - [ ] Setup instructions included if needed (API keys, accounts, etc.). From e1c94ed1f91e0b2e9158ed82dc79fb23f54c4cb1 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:37:54 +0530 Subject: [PATCH 04/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 557279a..c9e6d32 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -40,7 +40,7 @@ Thank you for your contribution. ❤️ --> - [ ] PR Title and commits follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) - [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). -- [ ] Documentation updated (plugin docs). +- [ ] Documentation updated (plugin docs from `@Schema` for properties and outputs, `@Plugin` with examples, `README.md` file with basic knowledge and specifics). - [ ] Setup instructions included if needed (API keys, accounts, etc.). ⚙️ **Properties** From a38a489a8fc946412bfb3524c647b7b7385c04d6 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:38:05 +0530 Subject: [PATCH 05/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c9e6d32..56ef172 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -45,7 +45,7 @@ Thank you for your contribution. ❤️ --> ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - +- [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. 🌐 **HTTP** - [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client` From 92a608d738b98ab0e74ca6b5550c2e84a911d0a7 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:38:16 +0530 Subject: [PATCH 06/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 56ef172..1916692 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -52,7 +52,8 @@ Thank you for your contribution. ❤️ --> 📦 **JSON** - [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`) -✨ **New plugins/subplugins** +✨ **New plugins / subplugins** +- [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category. - [ ] Icons added in `src/main/resources/icons` - `plugin-icon.svg` - One icon per package, e.g. `io.kestra.plugin.apify.svg` From bb7346b15b76b4cb699b1f640a5a09ac2bef09b2 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:38:25 +0530 Subject: [PATCH 07/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 1916692..15037c6 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -42,7 +42,7 @@ Thank you for your contribution. ❤️ --> - [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). - [ ] Documentation updated (plugin docs from `@Schema` for properties and outputs, `@Plugin` with examples, `README.md` file with basic knowledge and specifics). - [ ] Setup instructions included if needed (API keys, accounts, etc.). - +- [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. From ecdd3f4bb67dff8c4964feeb265eba34a9015c79 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:46:43 +0530 Subject: [PATCH 08/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 15037c6..0a14824 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -54,7 +54,7 @@ Thank you for your contribution. ❤️ --> ✨ **New plugins / subplugins** - [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category. -- [ ] Icons added in `src/main/resources/icons` +- [ ] Icons added in `src/main/resources/icons` in SVG format and not in thumbnail (keep it big): - `plugin-icon.svg` - One icon per package, e.g. `io.kestra.plugin.apify.svg` - For subpackages, e.g. `io.kestra.plugin.aws.s3`, add `io.kestra.plugin.aws.s3.svg` From d3678dc05e31bc7e0726d94cdbcc9b1c7e70bf01 Mon Sep 17 00:00:00 2001 From: Malay Dewangan <66718045+Malaydewangan09@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:46:57 +0530 Subject: [PATCH 09/14] Update .github/pull_request_template.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Delbrayelle --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0a14824..20a6357 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -53,6 +53,7 @@ Thank you for your contribution. ❤️ --> - [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`) ✨ **New plugins / subplugins** +- [ ] If you are fetching data (one, many or too many), you must add a `Property fetchType` to be able to use `FETCH_ONE`, `FETCH` and even `STORE` to store big amount of data in the internal storage. - [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category. - [ ] Icons added in `src/main/resources/icons` in SVG format and not in thumbnail (keep it big): - `plugin-icon.svg` From 56bfb4570f92abca2679b38c5eb9e30d818606e2 Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 13:42:16 +0530 Subject: [PATCH 10/14] feat(*): add contributor guidelines --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 20a6357..777fca8 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -43,6 +43,7 @@ Thank you for your contribution. ❤️ --> - [ ] Documentation updated (plugin docs from `@Schema` for properties and outputs, `@Plugin` with examples, `README.md` file with basic knowledge and specifics). - [ ] Setup instructions included if needed (API keys, accounts, etc.). - [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). +- [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. From 22dff9ab68e0b712e9de538b7688b5b543e7a59a Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 13:49:52 +0530 Subject: [PATCH 11/14] feat(*): add contributor guidelines --- .github/pull_request_template.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 777fca8..b37972b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -44,9 +44,11 @@ Thank you for your contribution. ❤️ --> - [ ] Setup instructions included if needed (API keys, accounts, etc.). - [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). - [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. + ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. + 🌐 **HTTP** - [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client` From 13f12c1e23cc700506c78663df47f834c3ac592a Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 13:59:07 +0530 Subject: [PATCH 12/14] review feedback --- .github/pull_request_template.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b37972b..dce31bc 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -44,6 +44,7 @@ Thank you for your contribution. ❤️ --> - [ ] Setup instructions included if needed (API keys, accounts, etc.). - [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). - [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. +- [ ] Use `runContext.logger()` to log enough important infos where it's needed and with the best level (DEBUG, INFO, WARN or ERROR). ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. @@ -57,8 +58,20 @@ Thank you for your contribution. ❤️ --> ✨ **New plugins / subplugins** - [ ] If you are fetching data (one, many or too many), you must add a `Property fetchType` to be able to use `FETCH_ONE`, `FETCH` and even `STORE` to store big amount of data in the internal storage. + See example [here](https://github.com/kestra-io/plugin-elasticsearch/blob/master/src/main/java/io/kestra/plugin/elasticsearch/Search.java#L76). +- [ ] Use `"{{ secret('YOUR_SECRET') }}"` in the examples for sensible infos such as an API KEY. - [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category. - [ ] Icons added in `src/main/resources/icons` in SVG format and not in thumbnail (keep it big): - `plugin-icon.svg` - One icon per package, e.g. `io.kestra.plugin.apify.svg` - For subpackages, e.g. `io.kestra.plugin.aws.s3`, add `io.kestra.plugin.aws.s3.svg` +- [ ] Align the `"""` to close examples blocks with the flow id. + +🧪 **Tests** +- [ ] Avoid disabling tests for CI. Instead configure a local environment whenever it's possible with `.github/setup-unit.sh` (which can be executed locally and in the CI) all along with a new `docker-compose-ci.yml` file (do **not** edit the existing `docker-compose.yml`). +- [ ] Provide screenshots from your QA / tests locally in the PR description. The goal here is too use the JAR of the plugin and directly test it locally in Kestra UI to ensure it integrates well. + +📤 **Outputs** +- [ ] Do not send back as outputs the same infos you already have in your properties. +- [ ] If you do not have any output use `VoidOutput`. +- [ ] Do not output twice the same infos (eg: a status code, an error code saying the same thing...). \ No newline at end of file From 60f3b4eee12431c055c31fbac11a3e49886c167e Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 14:11:04 +0530 Subject: [PATCH 13/14] review feedback --- .github/pull_request_template.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index dce31bc..8fca28c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -45,10 +45,12 @@ Thank you for your contribution. ❤️ --> - [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). - [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. - [ ] Use `runContext.logger()` to log enough important infos where it's needed and with the best level (DEBUG, INFO, WARN or ERROR). +- [ ] If you are serializing response from an external API, you may have to add a `@JsonIgnoreProperties(ignoreUnknown = true)` at the mapped class level. So that we will avoid to crash the plugin if the provider add a new field suddenly. ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. +- You can model a JSON thanks to a simple `Property>`. 🌐 **HTTP** - [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client` @@ -57,19 +59,20 @@ Thank you for your contribution. ❤️ --> - [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`) ✨ **New plugins / subplugins** -- [ ] If you are fetching data (one, many or too many), you must add a `Property fetchType` to be able to use `FETCH_ONE`, `FETCH` and even `STORE` to store big amount of data in the internal storage. - See example [here](https://github.com/kestra-io/plugin-elasticsearch/blob/master/src/main/java/io/kestra/plugin/elasticsearch/Search.java#L76). -- [ ] Use `"{{ secret('YOUR_SECRET') }}"` in the examples for sensible infos such as an API KEY. +- [ ] Make sure your new plugin is configured like mentioned [here](https://kestra.io/docs/plugin-developer-guide/gradle#mandatory-configuration). - [ ] Add a `package-info.java` under each sub package respecting [this format](https://github.com/kestra-io/plugin-odoo/blob/main/src/main/java/io/kestra/plugin/odoo/package-info.java) and choosing the right category. - [ ] Icons added in `src/main/resources/icons` in SVG format and not in thumbnail (keep it big): - `plugin-icon.svg` - - One icon per package, e.g. `io.kestra.plugin.apify.svg` + - One icon per package, e.g. `io.kestra.plugin.aws.svg` - For subpackages, e.g. `io.kestra.plugin.aws.s3`, add `io.kestra.plugin.aws.s3.svg` + See example [here](https://github.com/kestra-io/plugin-elasticsearch/blob/master/src/main/java/io/kestra/plugin/elasticsearch/Search.java#L76). +- [ ] Use `"{{ secret('YOUR_SECRET') }}"` in the examples for sensible infos such as an API KEY. +- [ ] If you are fetching data (one, many or too many), you must add a `Property fetchType` to be able to use `FETCH_ONE`, `FETCH` and even `STORE` to store big amount of data in the internal storage. - [ ] Align the `"""` to close examples blocks with the flow id. 🧪 **Tests** -- [ ] Avoid disabling tests for CI. Instead configure a local environment whenever it's possible with `.github/setup-unit.sh` (which can be executed locally and in the CI) all along with a new `docker-compose-ci.yml` file (do **not** edit the existing `docker-compose.yml`). -- [ ] Provide screenshots from your QA / tests locally in the PR description. The goal here is too use the JAR of the plugin and directly test it locally in Kestra UI to ensure it integrates well. +- [ ] Avoid disabling tests for CI. Instead, configure a local environment whenever it's possible with `.github/setup-unit.sh` (which can be executed locally and in the CI) all along with a new `docker-compose-ci.yml` file (do **not** edit the existing `docker-compose.yml`). +- [ ] Provide screenshots from your QA / tests locally in the PR description. The goal here is to use the JAR of the plugin and directly test it locally in Kestra UI to ensure it integrates well. 📤 **Outputs** - [ ] Do not send back as outputs the same infos you already have in your properties. From eebbea80d40cedcadcc19347edf8074e5b309431 Mon Sep 17 00:00:00 2001 From: Malaydewangan09 Date: Tue, 23 Sep 2025 14:19:52 +0530 Subject: [PATCH 14/14] review feedback --- .github/pull_request_template.md | 9 +++++---- .github/workflows/main.yml | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8fca28c..9866575 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -39,23 +39,22 @@ Thank you for your contribution. ❤️ --> ### Contributor Checklist ✅ - [ ] PR Title and commits follows [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) -- [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). +- [ ] Add a `closes #ISSUE_ID` or `fixes #ISSUE_ID` in the description if the PR relates to an opened issue. - [ ] Documentation updated (plugin docs from `@Schema` for properties and outputs, `@Plugin` with examples, `README.md` file with basic knowledge and specifics). - [ ] Setup instructions included if needed (API keys, accounts, etc.). - [ ] Prefix all rendered properties by `r` not `rendered` (eg: `rHost`). -- [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. - [ ] Use `runContext.logger()` to log enough important infos where it's needed and with the best level (DEBUG, INFO, WARN or ERROR). -- [ ] If you are serializing response from an external API, you may have to add a `@JsonIgnoreProperties(ignoreUnknown = true)` at the mapped class level. So that we will avoid to crash the plugin if the provider add a new field suddenly. ⚙️ **Properties** - [ ] Properties are declared with `Property` carrier type, do **not** use `@PluginProperty`. - [ ] Mandatory properties must be annotated with `@NotNull` and checked during the rendering. -- You can model a JSON thanks to a simple `Property>`. +- [ ] You can model a JSON thanks to a simple `Property>`. 🌐 **HTTP** - [ ] Must use Kestra’s internal HTTP client from `io.kestra.core.http.client` 📦 **JSON** +- [ ] If you are serializing response from an external API, you may have to add a `@JsonIgnoreProperties(ignoreUnknown = true)` at the mapped class level. So that we will avoid to crash the plugin if the provider add a new field suddenly. - [ ] Must use Jackson mappers provided by core (`io.kestra.core.serializers`) ✨ **New plugins / subplugins** @@ -71,6 +70,8 @@ Thank you for your contribution. ❤️ --> - [ ] Align the `"""` to close examples blocks with the flow id. 🧪 **Tests** +- [ ] Unit Tests added or updated to cover the change (using the `RunContext` to actually run tasks). +- [ ] Add sanity checks if possible with a YAML flow inside `src/test/resources/flows`. - [ ] Avoid disabling tests for CI. Instead, configure a local environment whenever it's possible with `.github/setup-unit.sh` (which can be executed locally and in the CI) all along with a new `docker-compose-ci.yml` file (do **not** edit the existing `docker-compose.yml`). - [ ] Provide screenshots from your QA / tests locally in the PR description. The goal here is to use the JAR of the plugin and directly test it locally in Kestra UI to ensure it integrates well. diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 15e46a3..715c175 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,7 +37,7 @@ jobs: script: | const org = "kestra-io"; const username = context.payload.pull_request.user.login; - + try { await github.rest.orgs.checkMembershipForUser({ org, username }); core.info(`User ${username} is a member of ${org}, skipping checklist validation.`); @@ -47,7 +47,7 @@ jobs: } const body = context.payload.pull_request.body || ""; - const unchecked = body.match(/- \[ \]/g); + const unchecked = body.match(/- +\[ +\]/g); if (unchecked) { core.setFailed("Some checklist items are still unchecked. Please complete them."); } else {