MCPcopy Index your code
hub / github.com/ashishb/gabo

github.com/ashishb/gabo @v1.14.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.14.0 ↗ · + Follow
65 symbols 141 edges 14 files 8 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GitHub Actions Boilerplate (gabo)

Lint YAML Lint Markdown Lint GitHub Actions Lint Go Validate Go code formatting Test

Check Go Releaser config for validity

Release Go binaries with Go Releaser Go report

GitHub downloads homebrew downloads

gabo short for GitHub Actions Boilerplate is for ease-of-generation of GitHub actions boilerplate with good timeouts, path filters, and concurrency preventions. See this blogpost for more details on why the GitHub defaults aren't great.

The actions runs only on push/pull requests against main and master branch, by default. Feel free to add more branches if you want to runs these checks when push/pull request against any other branches.

  • [x] Auto-generated high quality GitHub Actions
  • [x] Better file filters
  • [x] Explicit timeout
  • [x] Auto-cancelaion of stale executions
  • [x] Better caching
  • [x] Reduced security permissions on GITHUB_TOKEN

Installation

$ go install github.com/ashishb/gabo/src/gabo/cmd/gabo@latest
...

or via homebrew

$ brew install gabo
...

Or run directly

# --dir flag is optional and defaults to current directory
go run github.com/ashishb/gabo/src/gabo/cmd/gabo@latest --dir=<path-to-git-dir>

Usage

$ gabo --help

Usage of gabo:
  -dir string
   Path to root of git directory (default ".")
  -for string
   Generate GitHub Action (options: build-android,lint-android,translate-android,compress-images,build-docker,build-npm,build-yarn,lint-docker,format-go,lint-go,check-go-releaser,lint-html,lint-markdown,validate-openapi-schema,format-python,lint-python,lint-shell-script,lint-solidity,lint-yaml,lint-github-actions,validate-render-blueprint)
  -force
   Force overwrite existing files (in generate mode)
  -mode string
   Mode to operate in: [generate analyze] (default "analyze")
  -verbose
   Enable verbose logging
  -version
   Prints version of the binary

Sample usage - analyze a repository

# Analyze current directory (it should be the root of the repository)
$ gabo

# Analyze a different dir
$ gabo --dir=~/src/repo1

Sample usage - generate code

$ gabo --mode=generate --for=lint-docker
Wrote file .github/workflows/lint-docker.yaml

Supported actions

  • [x] build-android
  • [x] build-docker
  • [x] build-npm
  • [x] build-yarn
  • [x] check-go-releaser
  • [x] compress-images
  • [x] format-go
  • [x] format-python
  • [x] lint-android
  • [x] lint-docker using hadolint
  • [x] lint-github-actions using actionlint and zizmor
  • [x] lint-go
  • [x] lint-html
  • [x] lint-markdown
  • [x] lint-python
  • [x] lint-shell-script
  • [x] lint-solidity
  • [x] lint-yaml
  • [x] translate-android
  • [x] validate-openapi-schema using vacuum and oasdiff
  • [x] validate-render-blueprint using jsonschema
  • [ ] build-rust
  • [ ] lint-rust

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 35
Method 20
Struct 6
Interface 4

Languages

Go100%

Modules by API surface

src/gabo/internal/generator/all_options.go38 symbols
src/gabo/internal/generator/golang_lint_generator.go4 symbols
src/gabo/internal/generator/generator.go4 symbols
src/gabo/internal/generator/write_utils.go3 symbols
src/gabo/internal/analyzer/analyze_dir.go3 symbols
src/gabo/cmd/gabo/main.go3 symbols
src/gabo/internal/generator/openapi_schema_validator_generator.go2 symbols
src/gabo/internal/generator/goreleaser_config_checker_generator.go2 symbols
src/gabo/cmd/gabo/main_test.go2 symbols
src/gabo/internal/generator/build_yarn_generator.go1 symbols
src/gabo/internal/generator/build_npm_generator.go1 symbols
src/gabo/internal/generator/build_docker_generator.go1 symbols

For agents

$ claude mcp add gabo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page