BLT-Action is an innovative GitHub Action that automates issue assignment, tracks progress, engages contributors, and maintains an organized workflow. Keep your repository clean and contributors engaged.
Everything you need to manage issues and engage your contributor community
Self-assign to issues using natural language commands. Prevents multi-assignment and automatically tracks with labels.
Automatically unassigns users from stale issues after 24 hours if no PR is linked, keeping issues available.
Recognize contributor efforts publicly with kudos that integrate with OWASP BLT team API.
Support contributors financially via GitHub Sponsors with direct payment links.
Add fun and personality to discussions with Giphy-powered GIF posting on issues and PRs.
Prevents issue hoarding with multi-assignment protection and validates active pull requests.
Get up and running in minutes with this simple workflow configuration
| Parameter | Required | Description |
|---|---|---|
| repo-token | Yes | GitHub token for authentication (use ${{ secrets.GITHUB_TOKEN }}) |
| repository | Yes | Repository identifier (use ${{ github.repository }}) |
| giphy-api-key | Yes | API key for Giphy integration (add as repository secret) |
Create .github/workflows/blt-action.yml in your repository:
name: Auto Assign Issues
on:
# Trigger on new comments on issues
issue_comment:
types: [created]
# Trigger on new review comments on pull requests
pull_request_review_comment:
types: [created]
# Run daily at midnight UTC to check for stale assignments
schedule:
- cron: '0 0 * * *'
# Allow manual triggering from the Actions tab
workflow_dispatch:
jobs:
auto-assign:
# Only run on relevant events to avoid unnecessary workflow runs
if: >
(github.event_name == 'issue_comment' && (
contains(github.event.comment.body, '/assign') ||
startsWith(github.event.comment.body, '/unassign') ||
startsWith(github.event.comment.body, '/giphy') ||
startsWith(github.event.comment.body, '/kudos') ||
startsWith(github.event.comment.body, '/tip') ||
contains(github.event.comment.body, 'assign to me') ||
contains(github.event.comment.body, 'assign this to me') ||
contains(github.event.comment.body, 'assign it to me') ||
contains(github.event.comment.body, 'assign me this') ||
contains(github.event.comment.body, 'work on this') ||
contains(github.event.comment.body, 'i can try fixing this') ||
contains(github.event.comment.body, 'i am interested in doing this') ||
contains(github.event.comment.body, 'be assigned this') ||
contains(github.event.comment.body, 'i am interested in contributing'))) ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' ||
github.event_name == 'pull_request_review_comment'
runs-on: ubuntu-latest
steps:
- name: BLT Action
uses: OWASP-BLT/BLT-Action@main
with:
# GitHub token is automatically available - no need to create a secret
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Repository identifier is automatically provided by GitHub
repository: ${{ github.repository }}
# Giphy API key must be added as a repository secret
giphy-api-key: ${{ secrets.GIPHY_API_KEY }}
Learn how to use all the powerful commands and features
Comment any of these natural language commands on an issue:
/assign
assign to me
assign this to me
work on this
i can try fixing this
i am interested in doing this
The action will check if you have other open assigned issues without pull requests. You'll be assigned if eligible and given 24 hours to submit a PR.
Comment this command to unassign yourself:
/unassign
Bot Protection: Only human users can use assignment commands. Bot accounts and GitHub Apps are automatically excluded.
Add fun and personality to discussions:
/giphy [search term]
Example: /giphy celebration
Recognize contributor efforts publicly:
/kudos @username [optional message]
Example: /kudos @alice great work on the PR!
Support contributors financially via GitHub Sponsors:
/tip @username $amount
Example: /tip @contributor $10
If an issue remains inactive for 24 hours without a linked pull request, the action automatically:
cron: '0 0 * * *')
Users cannot be assigned to new issues if they have existing assigned issues without open pull requests.
BLT-Action integrates with multiple external APIs
Sends kudos data to the BLT platform for tracking contributor recognition
Learn MoreAll comments generated by the BLT-Action include an attribution footer for transparency:
---
This comment was generated by OWASP BLT-Action
Understanding the workflow triggers and execution flow
When users comment on issues or pull requests with specific commands (/assign, /unassign, /giphy, /kudos, /tip), the action processes these commands immediately.
A daily cron job (configurable) checks all assigned issues for inactivity:
The action implements intelligent assignment validation:
Commands like /giphy, /kudos, and /tip work across both issues and pull requests, making it easy to keep discussions lively, recognize contributor efforts, and support them financially via GitHub Sponsors.
The action responds to the following GitHub events:
For commands on issue comments
For commands on PR review comments
Daily cron job for stale issue checking
Manual trigger option
Join our open-source community and help make BLT-Action better
Contributions are what make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Check the issues page and choose one you'd like to work on.
Fork the repository to your GitHub account to start making changes.
git checkout -b feature/AmazingFeature
git commit -m 'Add some AmazingFeature'
git push origin feature/AmazingFeature
Once you've pushed your new branch, create a new Pull Request from your forked repository to the original BLT-Action repository.