Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions docs/plugins-for-developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,35 @@ automations:
!!! warning "15 Minute Time Limit"
gitStream actions are terminated after 15 minutes, this is a hard limit that can't be extended.

#### Using Async Plugin in Conditions

Normally, gitStream optimizes plugin execution by rendering plugins only after condition evaluation when all automation rules are decided. This optimization prevents unnecessary plugin calls.

However, when using an async plugin in a **condition** without the `immediate: true` flag, this optimization causes the plugin to not work properly, and you will see warning messages in the logs.

To use an async plugin in a condition, you must annotate the plugin with `immediate: true`:

```javascript
module.exports = {
async: true,
immediate: true,
filter: myFilter
}
```

The `immediate: true` flag tells the system not to optimize plugin execution. The downside is that the plugin might be called multiple times during the workflow execution. If your plugin makes API calls, this will result in multiple API requests as well.

```yaml+jinja
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐞 Bug - Markdown Fence Typo: Change the code fence language from yaml+jinja to a supported identifier such as jinja or ```yaml, or configure the docs engine accordingly.

Suggested change
```yaml+jinja
```jinja

automations:
welcome_author:
if:
- {{ "" | myFilter }}
run:
- action: add-comment@v1
args:
comment: hello world!
```

### Accept Arguments

Filter function plugins can accept any number of arguments. The first argument must be passed to the filter function via a ` | ` operator; all subsequent arguments are passed as a set inside parenthesis.
Expand Down