awesome-actions
A curated list of awesome actions to use on GitHub
https://github.com/sdras/awesome-actions
Last synced: 5 days ago
JSON representation
-
Community Resources
-
Pull Requests
- Create a PR for Changes to your Repository in the Actions Workspace
- ChatOps for PRs
- Block Autosquash Commits
- Automatically Update PRs with Outdated Checks and Squash and Merge the Ones Matching All Branch Protections
- Merge Pal - Automatically Update and Merge PRs
- Enforce naming convention on pull request title
- Pull Request Landmines
- Pull Request Stats - Print relevant stats about reviewers.
- Add Labels to a PR based on Total Size of the Diff
- Automatically merge PRs That Are Ready
- Verify That PRs Contain a Ticket Reference
- Lint a PR
- Lint pull request name with commitlint (Awesome if you squash merge !)
- Block PR merges when Checks for target branches are failing
- Get generated static site screenshots updated by Pull Request
- Add Labels Depending if the Pull Request Still in Progress
- Ticket Check Action - Automatically add a ticket or issue number to the start of all Pull Request titles.
- Pull Request Lint With Regex
- Annotate a GitHub Pull Request Based on a Checkstyle XML-Report
- Open or Update PR on Branch Push (with Branch Selection)
- Automatically Rebase a PR
- Prefix Title and Body of a PR Based on Text Extracted from Branch Name
- Automatically Bump and Tag on Merge
- Pull Request Stuck Notifier
- Automatically add Reviewers to PR based on the Configuration File
- Add Labels to a PR based on Branch Name Patterns
- Set PR Reviewers Based on Assignees
- Auto-Approve PRs
- Pull Request Description Enforcer - Enforces description on pull requests.
- Label PR once it has a Specified Number of Approvals
- Add Labels to a PR based on Matched File Patterns
-
Notifications and Messages
- Send a Telegram Message
- Send an SMS from GitHub Actions using Clockworksms
- Send a Discord notification
- Send email with SendGrid
- Send a Push Notification via Join
- New package version checker for npm
- Send a Push Notification via Pushbullet
- Create an Outlook Calendar Event using Microsoft Graph
- Send an SMS using MessageBird
- Reply to Stale Bots
- Send an Embed Message to Discord
- Keep Your PRs in Sync With Teamwork Tasks
- Send Microsoft Teams Notification
- Collaborate on tweets using pull requests
- Send a Push Notification via Push by Techulus
- Post a Slack message as a bot
- Send an SMS from GitHub Actions using Nexmo
- Send an SMS from GitHub Actions using Clockworksms
- Send a File or Text Message to Discord (custom define color, username or avatar)
- New package version checker for NuGet
- New package version checker for Gradle
- Watch for GitHub Wiki page changes and post to Slack
-
Deployment
- Cross platform Chocolatey CLI to build and publish packages
- Deploy a static site to Surge.sh
- Build and deploy a theme to Ghost CMS
- Deploy an Ansible role to Ansible Galaxy
- Trigger multiple Jenkins Jobs
- Publish npm (pre)releases
- Deploy a YouTube Video to Anchor.fm Podcast
- Build and publish docker images to any registry using Kaniko
- Convert Branch or Tag Name Into Docker-Compatible Image Tag
- Deploy to Netlify
- Deploy a Probot App using Actions
- Deploy a playlist to Spotify
- GitHub Action for Homebrew Tap
- Copy files and artifacts via SSH
- Deploy iOS Pod Library to Cocoapods
- GitHub Action for TencentCloud Serverless
- GitHub Action for GoReleaser, a release automation tool for Go projects
- Deploy with AWS CodeDeploy
- Sync/upload a directory to an AWS S3 bucket
- An example of using Terraform to validate and apply GitHub administration
- Purge Cloudflare cache after updating a website
- Build and publish Electron apps
- Update a Docker Hub repository description from README.md
- Update a repository's "Full description" on Docker Hub
- Deploy VS Code extensions with vsce
- Deploy your DNS configuration using DNS Control
- Deploy a Theme to Shopify
- Trigger multiple GitLab CI Pipeline
- Executing remote ssh commands
- Publish a Python distribution package to PyPI
- Deploy Static Website to Azure Storage
- Publish npm (pre)releases
- FTP Deploy Action, Deploys a GitHub project to a FTP server using GitHub actions
- Publish Article to Dev.to
- Action For Semantic Release
- Publish a Maven package
- Publish a package with 2FA using Slack
- Serialize Workflow Runs in Continuous Deployment Pipelines
- Netlify Deploy GitHub Action for each commit
- Run Ansible Playbooks
- Publish a Python Distribution Package to Anaconda Cloud
- Deploy a YouTube Video to Anchor.fm Podcast
- Deploy a Collection to Ansible Galaxy
- Publish module to Puppet Forge
- Publish one or more JS modules to a registry
- Deploy VS Code Extension to Visual Studio Marketplace or the Open VSX Registry
- Deploy Lambda code to an existing function
- Generate terraform documentation - Uses terraform-docs to generate docs for terraform modules.
- Publish Docker Images to the GitHub Package Registry (GPR)
- Build and publish docker images to any registry using Kaniko
- Monitor and limit your docker image size
- Publish Docker Images to the Amazon Elastic Container Registry (ECR)
- Convert Branch or Tag Name Into Docker-Compatible Image Tag
- Update a Container Repository Description From README.md - Supported Registries: Docker Hub, Quay, Harbor.
- Get Kubeconfig File From Google Kubernetes Engine (GKE)
- Kustomize Kubernetes Config YAMLs
- Create a Kubernetes Cluster for Testing Using Krucible
- Build And Push Your Docker Images Caching Each Stage To Reduce Build Time
- Set up Docker Buildx
- Deploy to any Cloud or Kubernetes Using Pulumi
- Deploy to Kubernetes with kubectl
-
Machine Learning Ops
- Automatically Dockerize A Data-Science Repo As A Jupyter Server
- Azure Machine Learning With GitHub Actions
- Submitting Argo Workflows (Cloud Agnostic)
- Query Experiment Tracking Results From Weights & Biases
- Submitting Argo Workflows to GKE
- Run Parameterized Jupyter Notebooks
- Compile, Deploy and Run Kubeflow Pipeline
-
Collection of Actions
- GitHub Actions for Rust
- GitHub Actions for Unity
- GitHub Actions for Docker
- GitHub Actions for R and accompanying #rstats package
- GitHub Actions for R and accompanying #rstats package
- GitHub Actions for WordPress
- GitHub Actions for Unity
- GitHub Actions for Docker
- Use HashiCorp's Terraform
- GitHub Actions for Yarn 1
- GitHub Actions for Yarn 2
- GitHub Actions for Golang
- GitHub Actions for Composer
- GitHub Actions for Flutter
- GitHub Actions for PHP
- GitHub Actions for Android
- GitHub Actions for Logtalk and Prolog
- GitHub Actions for Deno
- Octions - GitHub Actions for GitHub REST API
- GitHub Actions for AWS
- Actions Hub
-
Utility
- Expose slug of some GitHub variables
- Setup NativeScript
- Install NPM Dependencies with Caching
- Update Maxmind Databases
- Edit JSON File
- Twilio Voice Call - Make Twilio voice call with defined text.
- Twilio Fax - Sends a document by fax using your Twilio account.
- Get Latest Tag - Get the previous tag from git.
- Create Milestone - Create a new open milestone given the title and description.
- Autotag - Automatically generate a new tag when the manifest file (i.e. `package.json`) version changes.
- Linguist - Checks a repository and produces information about used languages in output.
- Twilio Voice Call - Make Twilio voice call with defined text.
- Memer Action - A GitHub Action for Programmer Memes xD.
- Delete Run Artifacts - Deletes all artifacts at the end of a workflow run.
- Create an envfile
- Export global environment variables for succeeding build steps
- Programmatically set environment variables for use in subsequent steps
- Create a JSON Environment File
- Next SemVers - Output the next version for major, minor, and patch version based on the given semver version.
- Get latest SemVer and branch name given a search string
- Cut Release Branch - Cuts a release branch given a branch prefix and optional semantic version.
- Update Maxmind Databases
- Edit JSON File
- Automatically add Label or Assignee to an Issue
- Has Changes - Check if there are code changes from previous steps.
- Mind Your Language Action - Detect offensive comments in issues and pull requests, and warn senders.
- YAML/JSON/XML Converter - Converts YAML/JSON/XML file formats interchangeably.
- Setup Cocoapods - Setup specific version of Cocoapods.
- Public IP - Queries GitHub actions runner's public IP address.
- GitHub Actions for Lazarus/FPC
- Twilio Fax - Sends a document by fax using your Twilio account.
- Setup Kubernetes tools - Install Kubernetes tools (kubectl, kustomize, helm, kubeval, conftest, and yq) on the runner.
- Setup Elastic Cloud Control Tool - Install a specific version of ecctl on the runner.
- PowerShell Script - Run PowerShell scripts with workflow contexts (e.g. `$github.token`) and cmdlets, return value => action output.
- GitHub Action Locks - Guarantee atomic execution of your GitHub Action workflows.
- GitHub Actions to compile LaTeX documents
- Debug with SSH over tmate - Debug the Action directly by providing a SSH connection.
- Unlock git-crypt files
- Golang CGO cross compiler
- Run your job on another architecture: arm32, aarch64 and others
- Generate a table of contents
- Action to send LGTM reaction as image or GIF when we say lgtm
- Generate build numbers across multiple scopes
- Publish GitHub release artifacts
- Jekyll Diff Action - Diffs the built Jekyll site after a change, and comments the result back to GitHub.
- Branch Protection Bot - Temporarily disable and re-enable "Include administrators" option in branch protection.
- Wait for commit statuses - Wait until all statuses and checks are successful or any of them has failed and set its status output accordingly.
- Increment Semantic Version - Bump a given semantic version (SemVer), depending on given release type.
- Setup `ssh-agent` - Run `ssh-agent` with additional SSH keys to access private repositories.
- GitHub Actions Badges for your README
- GitHub Actions for Python project with poetry
- GitHub Actions for Python project with pyenv
- Close Milestone - Close the given milestone.
- NSFW Detection - Detect NSFW content in committed files.
- Setup Xcode - Switch between pre-installed versions of Xcode for macOS images.
- Setup Xamarin - Switch between pre-installed versions of Xamarin and Mono for macOS images.
- Upload and Scan Files with VirusTotal
- Import a GPG Key
- Compress with UPX - The Ultimate Packer for eXecutables.
- Pull the New Go Module Version Into the Proxy Cache - Ensures the latest version of your Go module is in the proxy cache. Also updates the pkg.go.dev documentation upon release.
- GitHub Environment Variables Action - Expose environment variables such as the branch/tag name, repository slug, and ref slug.
- Install Conda environments for Python
- Highlight New NPM Dependencies - Comments on pull requests newly added NPM dependencies information.
- Cache Yarn Dependencies
- Action to enforce branch naming rules
- awesome-lint as a GitHub Action
- Build Slate documentation
- Read Properties - Read values from `.properties` files.
- Write Properties - Write values to `.properties` files.
- Apply templates with Jinja2 - Use the Jinja2 template engine to generate files from templates.
- Has Changed Path - Conditionally run actions based on changed paths.
- Paths Filter - Conditionally run actions based on files modified by PR, feature branch or pushed commits.
- Minisauras - Pulls all the JavaScript and CSS files from your base branch, minify them and creates a pull-request with a new branch.
- Website to GIF - Turn any webpage into a GIF to display on your README, docs, etc.
- Interactive Inputs - Runtime workflow inputs - Add dynamic inputs at runtime for your GitHub Actions workflows
- Cache NPM Dependencies
-
GitHub Tools and Management
- Action to sync GitHub labels in the declarative way
- Enforce Policies on GitHub Repositories and Commits
- Auto Label Issue Based on Issue Description
- Continuous Distribution of Funding to your Project Contributors and Dependencies
- Add releases to GitHub
- Publish a docker image to Dockerhub
- Continuous Distribution of Funding to your Project Contributors and Dependencies
- Declaratively setup GitHub Labels
- Add Label to your Pull Requests based on the author team name
- Get a list of file changes with PR/Push
- Label Your Issues Using the Issue's Contents
- Rollback a GitHub Release
- Lock Closed Issues and Pull Requests after a Period of Inactivity
- Get Commit Difference Count Between Two Branches
- Prow GitHub Actions - Automation of policy enforcement, chat-ops, and automatic PR merging.
- GitHub Codeowners Validator - Ensures the correctness of your GitHub CODEOWNERS file. It supports public and private GitHub repositories and also GitHub Enterprise installations.
- Copybara Action - Move and transform code between repositories (ideal to maintain several repos from one monorepo).
- Manage Labels on GitHub (create/rename/update/delete) as Code
- Herald Rules for GitHub: Add Subscribers, Assignees, Labels, and More to Your PR
- Enforce Policies on GitHub Repositories and Commits
- Publish GitHub Releases with Assets
- Use private actions in any workflow
- GitHub Project Automation+ - Automate GitHub Project cards with any webhook event.
- Run GitHub Actions Locally with a web interface
- Run GitHub Actions Locally in Terminal
- Build and Publish Android debug APK
- Generate sequential build numbers for GitHub Actions
- Push Git changes to GitHub repository without authentication difficulties
- Generate release notes based on your events
- Generate Release Notes Based on Git References
- Update Configured GitHub Actions to the Latest Versions
- Create Issue Branch
- Remove Old Artifacts
- Expose Git Commit Data As Environment Variables
- Sync Defined Files/Binaries to Wiki or External Repositories
- Create/Update/Delete a GitHub Wiki Page Based on Any File
- Check GitHub Status in your Workflow
- Create an issue using content from a file
- Create a GitHub wiki page based on the provided markdown file
- Label your Pull Requests auto-magically (using committed files)
-
Static Analysis
- Run codeception tests
- Run Unity tests
- Detect Flaky Tests with BuildPulse
- Run dotenv-linter, with reviewdog output on the PR
- Show and auto-fix linting errors for many programming languages
- Secrets Sync Action - Action syncs secrets across multiple repositories.
- Run Tests through Puppeteer, the Headless Chrome Node API
- Detect Flaky Tests with BuildPulse
- Run `ergebnis/composer-normalize` to ensure your PHP project has a normalized `composer.json`
- Run golangci-lint, with reviewdog output on the PR
- Run shellcheck, with reviewdog output on the PR
- PHP_CodeSniffer With Annotations
- Validate Fastlane Supply Metadata Against the Play Store Guidelines
- Run Golint to lint your Golang code
- Linting your AWS IAM policy documents for correctness and security issues
- Scan code with SonarCloud
- Secret Spreader - Not an action per se, but a tool to manage Actions Secrets across a list of repositories.
- Node.js - Automatically run the `format` and/or `lint` script used by the package
- Run stylelint, with reviewdog output on the PR
- PyCodeStyle Action - A GitHub Action that leaves a comment on your PR with pycodestyle (autopep8) feedback
- wemake-python-styleguide - The strictest and most opinionated python linter ever, with optional reviewdog output on the PR
- Run TSLint with status checks and file diff annotations
- Lint Pull Request commits with commitlint
- Run vint, with reviewdog output on the PR
- Catch insensitive, inconsiderate writing in your markdown docs
- Run dotenv-linter, with reviewdog output on the PR
- A vulnerability scanner for your docker images
- Automatically approve and merge Dependabot updates
- Run dlint security linter on your Python code
- AWS Secrets Manager Actions - Define AWS Secrets Manager secrets to environment values.
- SecretHub - Have a single source of truth for your secrets and load them into GitHub Actions on demand.
- PHPStan Static code analyzer Action
- xUnit Slack Reporter: Sends summary of tests from xUnit reports to a Slack channel
- Run TestCafe tests
- PHP Coding Standards Fixer Action
- Runs Hadolint against a Dockerfile within a repository
- Secrets Sync Action - Action syncs secrets across multiple repositories.
- Snyk Test Action
- Manage Your GitHub Actions Secrets With A Simple CLI
- PowerShell static analysis with PSScriptAnalyzer
- Run tfsec, with reviewdog output on the PR
- Run Cypress E2E tests
- Test Ansible roles with Molecule
- Run performance testing with artillery.io
- Display Inline Code Annotations for Jest Tests
- Run Julia tests
- Run ESLint, with reviewdog output on the PR
- JavaScript-based linter for \*.workflow files
- Lint terraform files using tflint, with reviewdog output on the PR
- autopep8: Automatically formats Python code to conform to the PEP 8 style guide
- Run `stolt/lean-package-validator` to ensure your package has only the required `runtime` artifacts
- Run Go lint checks on PR event
- Stylelinter - GitHub Action that runs stylelint
- Run mispell, with reviewdog output on the PR
- Run dotenv-linter - Lints your .env files like a charm, with optional reviewdog output on the PR
- Show and auto-fix linting errors for many programming languages
- Linter for markdown (with presets)
- Stylelint problem matcher to create annotations
- Run sqlcheck on the PR to identifies anti-patterns in SQL queries
- Send your code coverage to codecov.io
- Publishing code coverage to CodeClimate
- Update repository go report card
- Run Unity tests
-
External Services
- GitHub Action for Google Cloud Platform (GCP)
- GitHub Action for sending Stack Overflow posts to Slack
- Use a Jenkinsfile
- GitHub Action for Contentful Migration CLI
- GitHub Action for Google Cloud Platform (GCP)
- Upload files to any OpenStack Swift service provider
- GitHub Action for sending Stack Overflow posts to Slack
- Assume AWS role
- GitHub Action for Firebase
- GitHub Actions for Pixela (a-know/pi)
- Generate Custom Response using JSONbin
-
Frontend Tools
- Generate OG Image - Generate customisable open graph images from Markdown files.
- GitHub Action for Gatsby CLI
- Runs a WebPageTest audit and prints the results as commit comment
- GitHub Actions for Hugo extended
- Generate OG Image - Generate customisable open graph images from Markdown files.
- GitHub Actions for mdBook
- Setup Mint - Setup Mint (programming language for writing single page applications).
- Gatsby AWS S3 Deployment - Deploy Gatsby to S3 (supports CloudFront).
- Execute Gradle task
- JS Build Actions - Run Grunt or Gulp build tasks and commit file changes.
-
Dynamic Analysis
-
Build
- run-cmake - Multi platform action to build C/C++ software with [CMake](https://cmake.org) and [Ninja](https://ninja-build.org/).
- Check Gradle version - Keep your Gradle version up to date.
- Generate ~/.m2/settings.xml for Maven builds
- Run Pascal Script
- Setup Brainfuck - Setup brainfuck interpreter.
- Publish Go Binaries to GitHub Release Assets
- Setup COBOL
- run-vcpkg - Multi platform action to build and install C/C++ dependencies with [vcpkg](https://github.com/microsoft/vcpkg).
- Build Go applications for multiplatform
-
Networking
- Setup ZeroTier - Connect your runner to a ZeroTier network.
-
GitHub Pages
- Build a Jekyll site—with Custom Jekyll Plugins & Build Scripts—and deploy it back to the Gh-Pages Branch
- Deploy a Zola site to GitHub Pages
- Build Hugo static content site and publish it to gh-pages branch
- GitHub Actions for deploying to GitHub Pages with Static Site Generators
- GitHub Action for Hexo
- Deploy Google Analytics stats to GitHub Pages
- A Jupyter Notebook Blogging Platform Powered by GitHub Actions, Pages and Jekyll
- Deploy A Static Site to GitHub Pages - Deploy to custom directory and ignore folder/file.
- Deploy to GitHub Pages with Advanced Settings
- Google Dataset Search Metadata - And other schema.org extractors to make datasets discoverable from GitHub pages.
-
Monitoring
- Audit a webpage with Google Chrome's Lighthouse tests
- Runs Lighthouse and posts results to PRs and Slack
- Size Limit Action - Comments cost comparison of your JS in PRs and rejects them if limit is exceeded.
- Check bundlephobia - Comments new and modified package size according to bundlephobia.io website and rejects PR on threshold surpassed.
- Run Lighthouse in CI using GitHub Actions
- Continuous Benchmarking and Benchmark Visualization for Go
-
Database
- Setup Cassandra Schema - Running scripts from the provided folder on top of Cassandra cluster.
-
Localization
- Find and automatically fix typos and grammar issues in your code
- Translation - Translate text from any language to any language.
-
Fun
- Add equivalent of a like button in your README - Visualize community approval on some part of your readme (can be used as a poll).
-
Cheat Sheet
-
-
Official Resources
-
- Official Site
- Official Actions organization
- GitHub Blog Announcement
- actions/runner - The Runner for GitHub Actions.
- actions/virtual-environments - GitHub Actions virtual environments.
-
Official Actions
- actions/download-artifact - Download artifacts from your build.
- actions/create-release - An Action to create releases via the GitHub Release API.
- actions/upload-release-asset - An Action to upload a release asset via the GitHub Release API.
- actions/first-interaction - An action for filtering pull requests and issues from first-time contributors.
- actions/setup-haskell: Haskell (GHC and Cabal)
- actions/checkout - Setup your repository on your workflow.
- actions/upload-artifact - Upload artifacts from your workflow.
- actions/cache - Cache dependencies and build outputs in GitHub Actions.
- actions/setup-dotnet: .NET core sdk
- actions/github-script - Write a script for GitHub API and the workflow contexts.
- actions/setup-julia: Julia
- actions/labeler - An action for automatically labelling pull requests.
- actions/delete-package-versions - Delete versions of a package from GitHub Packages.
- actions/setup-node: Node.js
- actions/setup-python: Python
- actions/setup-go: Go
- actions/setup-java: Java
- actions/setup-ruby: Ruby
- actions/setup-elixir: Elixir
- actions/stale - Marks issues and pull requests that have not had recent interaction.
-
Create your Actions
- actions/http-client - A lightweight HTTP client optimized for use with actions, TypeScript with generics and async await.
- actions/typescript-action - Create a TypeScript Action.
- actions/toolkit - The GitHub ToolKit for developing GitHub Actions.
- actions/hello-world-javascript-action - A template to demonstrate how to build a JavaScript action.
- actions/javascript-action - Create a JavaScript Action.
- actions/hello-world-docker-action - A template to demonstrate how to build a Docker action.
- actions/container-toolkit-action - Template repo for creating container actions using actions/toolkit.
-
Workflow Examples
- actions/starter-workflows - Starter workflow management.
- actions/example-services - Example workflows using service containers.
-
-
Tutorials
-
Cheat Sheet
- Continuous deployment of Next.js app with Up
- GitHub Actions Advent Calendar
- Converting Docker-based Actions to JavaScript/TypeScript
- Deploying Self-Hosted GitHub Actions Runners with Docker - Deploy self-hosted GitHub Actions runners with Docker and Docker Swarm to DigitalOcean.
- Getting the Gist of GitHub Actions
- GitHub Actions CI for Swift/iOS Projects
- GitHub Actions for Rails Developers
- Zero Downtime Laravel Deployments with GitHub Actions
- Continuously Deploying Django to DigitalOcean with Docker and GitHub Actions
-
Programming Languages
Sub Categories
Utility
76
Static Analysis
63
Deployment
61
GitHub Tools and Management
40
Pull Requests
31
Notifications and Messages
22
Collection of Actions
21
Official Actions
20
External Services
11
GitHub Pages
10
Frontend Tools
10
Cheat Sheet
10
Build
9
Create your Actions
7
Machine Learning Ops
7
Monitoring
6
Dynamic Analysis
2
Localization
2
Workflow Examples
2
Fun
1
Database
1
Networking
1
Keywords
github-actions
187
actions
88
github-action
58
github
38
ci
26
action
18
docker
16
golang
13
continuous-integration
11
workflow
11
deployment
10
linter
10
devops
10
reviewdog
9
pull-requests
8
python
8
typescript
7
automation
7
go
7
javascript
7
release
6
ci-cd
6
workflows
6
pull-request
6
android
5
php
5
git
5
release-automation
5
aws
5
secrets
4
github-pages
4
github-api
4
python3
4
code-quality
4
nodejs
4
maven
3
labels
3
issues
3
lighthouse
3
security
3
continuous-deployment
3
node
3
static-analysis
3
wiki
3
cli
3
cicd
3
github-actions-docker
3
sms
3
composer
3
build
3