Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/flows-network/flow-functions

Flow function examples for flows.network
https://github.com/flows-network/flow-functions

automate-the-boring-stuff automation github javascript rust slack workflow-automation

Last synced: 3 months ago
JSON representation

Flow function examples for flows.network

Awesome Lists containing this project

README

        

# The function examples here are outdated and do not apply to flows.netwrok. Please check out https://github.com/flows-network/awesome-flow-functions

# Functions in Rust and JavaScript for flows.network

![badge](https://github.com/second-state/flow-functions/workflows/build/badge.svg?style=flat-square)

## Introduction

This repo consists of many functions to automate your workflows across multiple SaaS with the [flows.network](https://flows.network/) platform.

Since flows.network is programmable, you could write code to transform data between two SaaS based on your business needs as a developer.

The flow functions could be written in Rust and JavaScript.

## Usage

Please refer to our [Get Started](https://docs.flows.network/docs/category/getting-started) guide to automating workflows with the functions.

The following table shows the usage of each package. Remember to select the corresponding inbound and outbound connectors on the [flows.network](https://flows.network/) platform.

| Package Name | Inbound | Outbound | Description |
| ------------------------------------------------------------------------ | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [image-rotator](cloudinary/slack/image-rotator/) | Cloudinary | Slack | Returns the URL of the image rotated by 90 degrees when a file is uploaded to the Cloudinary |
| [discord-welcome](discord/discord/welcome/) | Discord | Discord | Send a welcome message when new member joined |
| [discord-ping](discord/discord/ping/) | Discord | Discord | Reply PONG to `/ping` message |
| [anti-invite-link](discord/discord/anti-invite-link/) | Discord | Discord | Ban a user when their messages contains invite link |
| [getting-started](getting-started/) | GitHub | Slack | Send a message to Slack when new comments are added to GitHub issues |
| [branch-tag-created](github/slack/branch-tag-created/) | GitHub | Slack | Send a message to Slack when a Git branch or tag is created |
| [branch-tag-deleted](github/slack/branch-tag-deleted/) | GitHub | Slack | Send a message to Slack when a Git branch or tag is deleted |
| [commit-syncer](github/slack/commit-syncer/) | GitHub | Slack | Send a message to Slack when a GitHub commit is pushed |
| [commit-comment-notifier](github/slack/commit-comment-notifier/) | GitHub | Slack | Send a message to Slack when a commit comment is created |
| [discussion-notifier](github/slack/discussion-notifier/) | GitHub | Slack | Send a message to Slack when a discussion is created, edited, deleted, pinned, unpinned, locked, unlocked, transferred, category_changed, answered, unanswered, labeled, or unlabeled |
| [discussion-comment-notifier](github/slack/discussion-comment-notifier/) | GitHub | Slack | Send a message to Slack when a comment in a dicussion is created, edited, or deleted |
| [fork-notifier](github/slack/fork-notifier/) | GitHub | Slack | Send a message to Slack when a user forks a repository |
| [issue-notifier](github/slack/issue-notifier/) | GitHub | Slack | Send a message to Slack when a GitHub issue is opened, edited, or assigned |
| [issue-review-notifier](github/github/issue-review-notifier/) | GitHub | GitHub | Assign an issue to a specified team member when an issue is created or comment on the issue to remind the creator in case of non-compliance with issue titling convention |
| [issue-pr-naive-bot](github/github/issue-pr-naive-bot/) | GitHub | GitHub | A multi-purpose script that performs different tasks when deployed on certain inbound/outbound pairs. i.e. it assigns labels, assignees, makes comment when a GitHub issue is created, or a pull request is created |
| [full-pr-review-bot](github/github/full-pr-review-bot/) | GitHub | GitHub | Request a specific pull request reviewer when the title meets requirements, otherwise send a comment prompt
| [pr-reviewer](github/github/pr-reviewer/) | GitHub | GitHub | Automatically merge pull requests when 3 approval are reached
| [dco-checker](github/github/dco-checker/) | GitHub | GitHub | Check that every commit in a pull request is dco signed, and leave a comment to remind
| [label-notifier](github/slack/label-notifier/) | GitHub | Slack | Send a message to Slack when a label is created, edited, or deleted |
| [pr-messenger](github/slack/pr-messenger/) | GitHub | Slack | Send a message to Slack when an activity related to a pull request was performed. Can be one of: assigned, auto_merge_disabled, auto_merge_enabled, closed, converted_to_draft, edited, labeled, locked, opened, ready_for_review, reopened, review_request_removed, review_requested, synchronize,unassigned, unlabeled, unlocked |
| [pr-review-notifier](github/slack/pr-review-notifier/) | GitHub | Slack | Send a message to Slack when a pull request review is submitted, edited, or dismissed |
| [pr-review-comment-notifier](github/slack/pr-review-comment-notifier/) | GitHub | Slack | Send a message to Slack when a pull request review comment is created, edited, or deleted |
| [release-notifier](github/slack/release-notifier/) | GitHub | Slack | Send a message to Slack when a release is published, unpublished, created, edited, deleted, prereleased, or released |
| [repository-notifier](github/slack/repository-notifier/) | GitHub | Slack | Send a message to Slack when a repository is created, deleted, archived, unarchived, edited, renamed, transferred, publicized, or privatized |
| [slack-star-messenger](github/slack/star-messenger/) | GitHub | Slack | Send a message to Slack when the GitHub repo gets every 10 stars |
| [workflow-job-notifier](github/slack/workflow-job-notifier/) | GitHub | Slack | Send a message to Slack when a GitHub Actions workflow job has been queued, is in progress, or has been completed |
| [star-thanks-by-gmail](github/gmail/star-thanks-by-gmail/) | GitHub | Gmail | Send thank you message via Gmail when GitHub repo gets star |
| [star-thanks-by-sendgrid](github/sendgrid/star-thanks-by-sendgrid/) | GitHub | Sendgrid | Send thank you message via Sendgrid when GitHub repo gets star |
| [star-send-question](github/github/sendgrid/star-send-question/) | GitHub | Sendgrid | Send question message via Sendgrid when GitHub repo gets star |
| [pr-thanks-by-sendgrid](github/sendgrid/pr-thanks-by-sendgrid/) | GitHub | Sendgrid | Send thank you message via Sendgrid when GitHub repo gets pull request |
| [label-issue-discord](github/discord/issue-to-discord/) | GitHub | Discord | Send a message to Discord when with a label |
| [twilio-star-messenger](github/twilio/star-messenger/) | GitHub | Twilio | Send thank you message via Twilio(or Slack) when GitHub repo gets star |
| [calculator](slack/slack/calculator/) | Slack | Slcak | Compute the expressions on the Slack |
| [lucky-draw](slack/slack/lucky-draw/) | Slack | Slcak | Simply type "lucky draw" in a Slack channel to do the trick |
| [upload](slack/cloudinary/upload/) | Slack | Cloudinary | Upload a file from Slack to Cloudinary |
| [assign-notifier](github/notion/assign-notifier/) | GitHub | Notion | Create a task on Notion when the GitHub issue is assigned |
| [jira-pr-status-updator](github/jira/pr-status-updater/) | GitHub | Jira | Synchronize the PR state of GitHub to Jira (or Monday) |
| [sync-pr-to-jira](github/jira/sync-pr-to-jira/) | GitHub | Jira | Create an issue on Jira when the PR is created on GitHub |
| [monday-pr-status-updator](github/monday/pr-status-updater/) | GitHub | Monday | Synchronize the PR state of GitHub to Jira (or Monday) |
| [comment-notifier](jira/slack/comment-notifier/) | Jira | Slack | Send message to Slack when a comment is changed on GitHub |
| [group-bad-message](telegram/telegram/group-bad-message/) | Telegram | Telegram | Ban a user when their messages contains `shit` |
| [group-link-limit](telegram/telegram/group-link-limit/) | Telegram | Telegram | Warning a user when their messages contains link `secondstate.io` |
| [group-member-change](telegram/telegram/group-members-change/) | Telegram | Telegram | Send a message when group member changed |
| [telegram-ping](telegram/telegram/ping/) | Telegram | Telegram | Reply PONG to `/ping` message |

## Build for Rust functions

* Install WASM target if you not

```shell
rustup target add wasm32-wasi
```

* Build package

```shell
cargo build -p --target wasm32-wasi --release # Build specified package
cargo build --workspace --target wasm32-wasi --release # Build all packages
```

## Contributions

flows.network is driven by the community. You are welcome to contribute and share your functions with the community. So don't hesitate to create a PR when you have some ideas to share.