π¦ Iβve been threatening to build this for months, and here it finally is β ChecKMarK Upkeep Docs Action. Built to play nice with GitHub, using your own rules, tokens, and permissions. Iβm just the orchestrator in the situation: you pull the trigger, I hand it straight to the Coding Agent with my documentation prompts. From there, the plan is simpleβmagic. πͺ
ChecKMarK Upkeep Docs Action is a GitHub Action that leverages the GitHub Copilot CLI to send Coding Agent on a mission to create the perfect systems documentation automatically. Itβs the first step toward full doc orchestrationβan intelligent prompter for GitHubβs coding agent that analyzes your codebase and builds documentation through pull requests.
I plan to expand into other areas (test cases are probably next), but this one already works well enough to stand on its own.
Your data is yours. I donβt log or store anything, ever. At some point, I may enable anonymous statistics, but all activity is visible directly inside your workflow runsβno hidden analytics, no surprises. This repo is scanned regularly for vulnerabilities, and every prompt sent to Coding Agent is hand-written by me and scrubbed again by GitHub before it ever looks at your repo.
Once Coding Agent takes over, my job is done hereβthat means it's up to you to iterate on results with the @copilot mention and report back any strangenessβI'll get it on the list.
- π€ AI-Powered: Uses GitHub Copilot CLI for intelligent documentation generation
- π Zero Configuration: Works out of the box with the default GitHub token (at least, that's the plan!)
- π Pull Request Integration: Creates reviewable pull requests with generated docs
- π Security First: Comprehensive security scanning and best practices
name: Generate Documentation
on:
workflow_dispatch:
pull_request:
types: [opened, edited, reopened, synchronize]
jobs:
upkeep-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/upkeep-docs@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}- uses: actions/upkeep-docs@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}| Input | Description | Required | Default |
|---|---|---|---|
github-token |
GitHub token for API access | β | ${{ github.token }} |
The action requires the following permissions for the GITHUB_TOKEN:
contents: write- Create and modify documentation filespull-requests: write- Create pull requests with generated documentationmetadata: read- Read repository metadata (default)
permissions:
contents: write
pull-requests: write
metadata: readThe default GITHUB_TOKEN typically has sufficient permissions, but you may need to explicitly grant write permissions in your workflow:
jobs:
upkeep-docs:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/upkeep-docs@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}- Node.js 22 (managed with Volta)
- npm
- GitHub Copilot
# Clone the repository
git clone https://github.com/ChecKMarKDevTools/checkmark-upkeep-docs-action
cd checkmark-upkeep-docs-action
# Install dependencies
npm install
# Run tests
npm testβββ .github/workflows/ # CI/CD workflows
βββ .kiro/ # AI assistant configuration
βββ src/ # Source code
β βββ main.js # Action entry point
β βββ copilot-cli.js # Copilot CLI integration
β βββ utils.js # Utilities
βββ tests/ # Test suites
βββ docs/ # Astro documentation site
βββ action.yml # Action metadata
# Unit tests
npm test
# Integration tests
npm run test:integration
# Prettier formatting
npm run format
# ESLint
npm run lintDocumentation site is coming soon for comprehensive guides, examples, and more. Stay tuned!
Security is a top priority. Please see our Security Policy for reporting vulnerabilities.
Licensed under my personal Polyform Shield 1.0.0 - allows free use with appropriate restrictions. That means this project isnβt here for resale or repackaging. You can build with it, learn from it, fork it, remix it β just donβt slap a logo on top and call it your startup. I built this for the community, not for recycling relabeled as entrenupership. π
π Documentation π Issues
Kiro says he made this with β€οΈ β like I wasn't helping π