Professional, zero‑complexity GitHub Actions for every automation need.
Deploy 14+ production‑grade bots to any repository in seconds.
-
Clone this repository (or download the ZIP):
git clone https://github.com/OverLab-Group/OLABS.git cd OLABS -
Deploy bots to your target repositories:
# Deploy all bots to two local repos ./deploy.sh all /path/to/repo1 /path/to/repo2 # Deploy only lfb and endb to a single repo ./deploy.sh lfb,endb /path/to/repo
PowerShell version:
.\deploy.ps1 lfb,endb C:\path\to\repo -
Commit and push the changes in your target repositories.
The bots will run automatically on every push/PR.
- Git (>=2.25)
- Bash 4+ or PowerShell 5.1+ (for deployment)
- GitHub CLI (
gh) – required by some bots for commenting, releases, and moderation - Target repository – any GitHub repository (public or private)
Mandatory – place this file in the root of every target repository.
The deploy script copies a template; you must edit at least the following:
# OverLab Action Bots – Global Configuration
# This file is REQUIRED in the root of your repository.
# All bots read it. Edit the values below.
# ----------------------------------------------------------------------
# Git identity for auto‑commits (used by bots that commit changes)
# ----------------------------------------------------------------------
BOT_GIT_NAME = OverLab Group
BOT_GIT_EMAIL = overlab.group@gmail.com
# ----------------------------------------------------------------------
# Directory paths (relative to repository root)
# ----------------------------------------------------------------------
OUTPUT_DIR = metadata
CONFIG_DIR = .overlab_actions
# ----------------------------------------------------------------------
# Bot enablement – comma‑separated lists of bot names
# Full list: lfb, endb, ss, bg, dc, rd, sm, w2, ev, ccr, db, nat, bb, cube
# ----------------------------------------------------------------------
BOTS_ENABLED = lfb, endb, ss, bg, dc, rd, sm, w2, ev, ccr, db, nat, bb, cube
BOTS_DISABLED =
# ----------------------------------------------------------------------
# Protected files/directories – guarded by NAT (Not Allowed Things) bot
# Supports * wildcard (prefix matching)
# ----------------------------------------------------------------------
PROTECTED_PATHS = metadata, .overlab_actions/global.md, .github/workflows/olabs-*.ymlAll bots read this file. See each bot's documentation for per‑bot configuration.
| Bot | Name | Description |
|---|---|---|
| lfb | Linter & Formatter | Auto‑format 30+ languages (C, Rust, Go, Python, JS, PHP, Ruby, …) |
| endb | Auto END Bot | Generate CHANGELOG.md from // END comments; archive on major releases |
| ss | Security Scout | Run Trivy, Gitleaks, CodeQL; create private security issues |
| bg | Benchmark Guardian | Run benchmarks, compare with main, comment on PR |
| dc | Dependency Watch | Check outdated deps and license compliance; comment on PR |
| rd | Release Drafter | Generate release notes from conventional commits; create releases |
| sm | Stale Manager | Close stale issues/PRs after periods of inactivity |
| w2 | Welcome Wagon | Greet first‑time contributors on their first PR |
| ev | Example Validator | Build and run all examples; fail PR if any break |
| ccr | Code Coverage Reporter | Run tests, generate coverage reports, comment on PR, store history |
| db | Discussion Bot (Go) | Moderate comments, remove offensive content, track offenders, block users |
| nat | Not Allowed Things | Protect sensitive files from unauthorized changes |
| bb | Build Bot | Auto‑build projects (CMake, Make, Cargo, Go, npm, …); tag and release |
| cube | Config Up Bot Environment | Auto‑configure environment for detected tech stacks |
Each bot reads its own configuration from
<CONFIG_DIR>/<bot>/config.md (e.g., .overlab_actions/lfb/config.md).
Format: KEY=VALUE (one per line, # for comments).
Example – LFB:
ENABLED = true
TOOLS = clang-format,prettier,black
AUTO_COMMIT = true
COMMIT_MESSAGE = style: auto-format code
VERBOSE = falseAll keys are optional – bots fall back to sane defaults.
See each bot's config.md template for available options.
./deploy.sh <bot-list> <repo-path1> [repo-path2 ...]<bot-list>: comma‑separated bot names (e.g.,lfb,endb,ss) orall<repo-path>: absolute or relative path to local Git repository
.\deploy.ps1 <bot-list> <repo-path1> [repo-path2 ...]What the scripts do:
- Validate that each target is a Git repository.
- Create
.github/workflowsand.github/actionsif missing. - Copy each selected bot's action folder to
.github/actions/olabs-<bot>/. - Copy
common/common.shinto the same folder (self‑contained bot). - Create a workflow file
.github/workflows/olabs-<bot>.ymlthat uses the local action. - Copy
overlab_actions.mdto the repository root if not already present. - Copy per‑bot config example to
<CONFIG_DIR>/<bot>/config.mdif not already present.
The scripts do not overwrite existing global configs or per‑bot configs – they only create missing files.
Some bots require additional permissions. Add these to your workflow if needed:
| Bot | Required Scopes |
|---|---|
| ss | security-events: write, issues: write |
| rd | contents: write |
| sm | issues: write, pull-requests: write |
| db | repo, discussions, admin:org |
| nat | (no special scopes) |
| all | GITHUB_TOKEN is automatically provided |
Apache 2.0 – Free for personal and commercial use.
See LICENSE for full terms.
OverLab Action Bots – Built for the real world. 🖤