Actionsflow
The free IFTTT/Zapier alternative for developers to automate their workflows based on Github actions
📝 Table of Contents
😁 About
Actionsflow helps you automate workflows - it's a free IFTTT/Zapier alternative for developers. With Actionsflow you can connect your favorite apps, data, and APIs, receive notifications of actions as they occur, sync files, collect data, and more. We implemented it based on Github actions, and you use a YAML file to build your workflows. The configuration format is the same as Github actions, which makes it easy for you to get going if you've explored Github actions before. You can also use any Github actions as your job's steps.
You can learn more about the core concepts of Actionsflow here.
🔥 Features
- Totally Free! Actionsflow is based on Github actions. To run an Actionsflow workflow, all you need to do is create a repository from the Actionsflow template repository.
- Leverage Community Triggers. You can use community-provided triggers like Slack, RSS, Webhook, Typeform, Email, Reddit, NPM, Telegram, Twitter, etc. You can also easily create your own triggers.
- Support Almost ALL Actions of Github Actions. Actionsflow uses act (a tool for running GitHub Actions locally) to run the jobs on your workflow file. With these awesome Github actions, you can connect with IFTTT, Zapier, or other services like Slack, Telegram, Facebook, Twitter, Line, etc.
- Simple Workflow Configuration. The Actionsflow configuration format is the same as Github actions. If you've written a Github actions file before, you'll find defining an Actionsflow workflow file really easy.
- Run triggers every 5 minutes. The workflow can check and run every 5 minutes based on Github actions scheduled events.
- Support complex workflows. With Actionsflow you can make complex advanced workflows. Actionsflow provides a MongoDB query language for you to filter your data as you want.
🎓 Documentation
Full documentation for Actionsflow lives on the website.
You can also view it on Github if you prefer.
👀 How Actionsflow works
Actionsflow uses Github Actions' repository_dispatch
event and scheduled
event every 5 minutes to run Actionsflow triggers. Those triggers generate result items, which are cached and deduplicated, generating a standard Github actions workflow file with the trigger result. Finally, the workflows are executed using act (a tool for running GitHub Actions locally).
To learn more about how Actionsflow works, please see Core Concepts of Actionsflow.
🏁 Getting Started
-
Create a public Github repository by using this link.
A typical Actionsflow repository structure looks like this:
├── .github
│ └── workflows
│ └── actionsflow.yml
├── .gitignore
├── README.md
└── workflows
│ └── rss.yml
│ └── webhook.yml
└── package.json
-
Create your workflow files inside the workflows
directory
A typical workflow file rss.yml
looks like this:
on:
rss:
url: https://hnrss.org/newest?points=300
jobs:
ifttt:
name: Make a Request to IFTTT
runs-on: ubuntu-latest
steps:
- uses: actionsflow/ifttt-webhook-action@v1
with:
event: notice
key: ${{ secrets.IFTTT_KEY }}
value1: ${{on.rss.outputs.title}}
value2: ${{on.rss.outputs.contentSnippet}}
value3: ${{on.rss.outputs.link}}
For more information about the Actionsflow workflow file, see the
Actionsflow workflow reference.
You can find examples and inspiration on the Trigger List and on Awesome Actionsflow Workflows.
-
Commit and push your updates to Github
Pushing to Github makes Actionsflow run the workflows you defined. You can view logs at your repository's actions tab on Github.
For more information about getting up and running, see Getting Started.
🎓 Learn More
Full documentation for Actionsflow lives on the website.
👏 How to Contribute
Whether you're helping us fix bugs, improve the docs, or spread the word, we'd love to have you as part of the Actionsflow community! 💪💜
Check out our Contributing Guide for ideas on contributing and setup steps for getting our repositories up and running on your local machine.
✋ Authors
See also the list of contributors who participated in this project.
📝 License
Licensed under the MIT License.