Skip to content

PlayForm/Maintain

GitHub

Related

Build
Dependency
Version
Star
Download
🗜️ Compress —
Build
Dependency
Version
Star
Download
🗻 Format —

Maintain 🔧

This CLI tool brings GitHub repository maintenance utilities to your workflow.

Clean 🎁

Dependabot 🎁

Dispatch 🎁

Edit 🎁

Node 🎁

Cloudflare 🎁

NPM 🎁

Rust 🎁

GitHub 🎁

Star 🎁

Important

Set Base and Token in your .env before running any commands.

Installation 🚀

There are two ways to use Maintain. Install it globally for repeated use, or run it directly without installing.

Install globally

Using NPM:

npm install -g @playform/maintain

Using Yarn:

yarn global add @playform/maintain

Using PNPM:

pnpm add -g @playform/maintain

Run directly

Using NPM:

npx @playform/maintain < Command > [Arguments...]

Using Yarn:

yarn dlx @playform/maintain < Command > [Arguments...]

Using PNPM:

pnpx @playform/maintain < Command > [Arguments...]

Getting started

Once installed, invoke Maintain followed by a subcommand:

Maintain < Command > [Arguments...]

Clean

Deletes GitHub Actions workflow runs, their logs, and caches for the specified repositories. Omit repositories to target all accessible ones.

Maintain Clean MyRepo AnotherRepo
Maintain Clean

Dependabot

Scans project directories for package manifests (package.json, Cargo.toml, etc.) and generates .github/dependabot.yml alongside a supporting .github/workflows/Dependabot.yml workflow to keep dependencies up-to-date automatically.

Maintain Dependabot

Dispatch

Triggers workflow_dispatch events for every workflow in the specified repositories on the Current ref. Omit repositories to dispatch for all accessible ones.

Maintain Dispatch MyRepo AnotherRepo
Maintain Dispatch

Edit

Configures repository and organization settings: vulnerability alerts, automated security fixes, merge strategies, auto-merge, branch deletion on merge, fork settings, web commit signoffs, and default Actions permissions.

Maintain Edit MyRepo AnotherRepo
Maintain Edit

Node

Generates or updates .github/workflows/Node.yml for Node.js projects (package.json). Configures pnpm with lock-file caching and adds steps for build, test, and prepublishOnly scripts. Uploads ./Target artifacts when a build script is present.

Maintain Node

Cloudflare

Generates or updates .github/workflows/Cloudflare.yml for Cloudflare Workers projects (wrangler.toml). Configures cloudflare/wrangler-action for deployments.

Maintain Cloudflare

NPM

Generates or updates .github/workflows/NPM.yml for packages published to NPM. Adds a publish step via npm publish --legacy-peer-deps --ignore-scripts when build, prepublishOnly, or Build scripts are detected.

Maintain NPM

Rust

Generates or updates .github/workflows/Rust.yml for Rust projects (Cargo.toml). Caches Cargo dependencies and builds in release mode with all features enabled.

Maintain Rust

GitHub

Generates or updates .github/workflows/GitHub.yml for general CI use across repositories.

Maintain GitHub

Workflow

Meta-command that runs all workflow generators — Dependabot, Node, Cloudflare, NPM, Rust, and GitHub — in a single pass.

Maintain Workflow

Star

Reads all package.json files under Base, collects every NPM dependency, and stars their corresponding GitHub repositories.

Maintain Star

Complexity

Discovers and logs package file information across project directories.

Maintain Complexity "src/**/*.ts"
Maintain Complexity

.env Configuration

Create a .env file in the directory where you run Maintain:

# Your GitHub username — used by Clean, Dispatch, Edit.
User="YourGitHubUsername"

# Root directory scanned for package manifests.
# Defaults to the current working directory.
# Used by Star and all workflow commands.
Base="/path/to/your/projects"

# GitHub Personal Access Token with repo, workflow, and admin:org scopes.
# Used by Clean, Dispatch, Edit, Star.
Token="YourGitHubPAT"

Changelog

See CHANGELOG.md for a history of changes to this tool.