Thanks to visit codestin.com
Credit goes to owasp-blt.github.io

GitHub Actions powered workflow automation

Streamline Your GitHub Workflow

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.

Powerful Features

Everything you need to manage issues and engage your contributor community

Assignment Management

Self-assign to issues using natural language commands. Prevents multi-assignment and automatically tracks with labels.

  • Multiple assignment commands
  • Bot protection (human-only)
  • Automatic label management

Automated Workflow

Automatically unassigns users from stale issues after 24 hours if no PR is linked, keeping issues available.

  • 24-hour inactivity threshold
  • Smart PR detection
  • Daily scheduled execution

Kudos System

Recognize contributor efforts publicly with kudos that integrate with OWASP BLT team API.

  • Works with any GitHub username
  • BLT profile integration
  • Custom appreciation messages

Tip System

Support contributors financially via GitHub Sponsors with direct payment links.

  • GitHub Sponsors integration
  • Any amount support
  • Automatic validation

GIF Integration

Add fun and personality to discussions with Giphy-powered GIF posting on issues and PRs.

  • Giphy API integration
  • Works on issues & PRs
  • Simple search commands

Smart Protection

Prevents issue hoarding with multi-assignment protection and validates active pull requests.

  • Multi-assignment prevention
  • PR validation checks
  • Duplicate prevention

Quick Installation

Get up and running in minutes with this simple workflow configuration

Prerequisites

  • A GitHub account with administrative privileges on your repository
  • A Giphy API key (free) from developers.giphy.com

Configuration Inputs

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)

Workflow Configuration

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 }}

Usage Guide

Learn how to use all the powerful commands and features

Assignment Commands

Self-Assign to an Issue

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.

Unassign Yourself

Comment this command to unassign yourself:

/unassign
  • Removes you from the issue
  • Removes the "assigned" label
  • Makes the issue available for others

Bot Protection: Only human users can use assignment commands. Bot accounts and GitHub Apps are automatically excluded.

Engagement Commands

Post a GIF

Add fun and personality to discussions:

/giphy [search term]

Example: /giphy celebration

  • Posts an animated GIF from Giphy matching your search term
  • Works on both issues and pull request comments

Send Kudos

Recognize contributor efforts publicly:

/kudos @username [optional message]

Example: /kudos @alice great work on the PR!

  • Posts kudos publicly on the issue/PR for everyone to see
  • Works with any GitHub username - no BLT account required
  • Automatically tracked on BLT profile if recipient has one

Send Tips

Support contributors financially via GitHub Sponsors:

/tip @username $amount

Example: /tip @contributor $10

  • Generates a direct link to contributor's GitHub Sponsors page
  • Supports any amount (e.g., $5, $10.50, $100)
  • Validates GitHub Sponsors availability

Automated Features

Stale Issue Unassignment

If an issue remains inactive for 24 hours without a linked pull request, the action automatically:

  • Unassigns the user
  • Removes the "assigned" label
  • Posts a notification that the issue is available again
  • Runs daily via scheduled workflow (cron: '0 0 * * *')

Assignment Protection

Users cannot be assigned to new issues if they have existing assigned issues without open pull requests.

  • Lists all blocking issues in the response message
  • Prevents users from hoarding issues without active work

API Integrations

BLT-Action integrates with multiple external APIs

GitHub API

Uses @actions/github with the provided GITHUB_TOKEN for all GitHub operations

View Docs

Giphy API

Requires a free API key from Giphy Developers for GIF integration features

Get API Key

OWASP BLT Team API

Sends kudos data to the BLT platform for tracking contributor recognition

Learn More

Attribution

All comments generated by the BLT-Action include an attribution footer for transparency:

---
This comment was generated by OWASP BLT-Action

How It Works

Understanding the workflow triggers and execution flow

1

Comment-Triggered Actions

When users comment on issues or pull requests with specific commands (/assign, /unassign, /giphy, /kudos, /tip), the action processes these commands immediately.

2

Scheduled Monitoring

A daily cron job (configurable) checks all assigned issues for inactivity:

  • Identifies issues assigned for more than 24 hours without updates
  • Verifies if the issue has a linked pull request via cross-references
  • Automatically unassigns inactive issues without PRs to keep them available
3

Smart Assignment Logic

The action implements intelligent assignment validation:

  • Prevents users from being assigned to multiple issues without active pull requests
  • Blocks duplicate assignments to the same issue
  • Validates existing assignments before allowing new ones
  • Automatically adds and removes the "assigned" label for tracking
4

Engagement & Recognition

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.

Event Triggers

The action responds to the following GitHub events:

issue_comment.created

For commands on issue comments

pull_request_review_comment.created

For commands on PR review comments

schedule

Daily cron job for stale issue checking

workflow_dispatch

Manual trigger option

Contributing

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.

1

Find an Issue

Check the issues page and choose one you'd like to work on.

2

Fork the Project

Fork the repository to your GitHub account to start making changes.

3

Create your Feature Branch

git checkout -b feature/AmazingFeature
4

Commit your Changes

git commit -m 'Add some AmazingFeature'
5

Push to the Branch

git push origin feature/AmazingFeature
6

Open a Pull Request

Once you've pushed your new branch, create a new Pull Request from your forked repository to the original BLT-Action repository.