{"id":46639388,"url":"https://github.com/slice-soft/ss-keel-addon-template","last_synced_at":"2026-03-08T02:19:08.708Z","repository":{"id":342656795,"uuid":"1174669020","full_name":"slice-soft/ss-keel-addon-template","owner":"slice-soft","description":"Keel Addon Template preconfigured: Base template for creating modular addons for Keel Framework with built-in CI/CD, release automation, and step-by-step integration configuration","archived":false,"fork":false,"pushed_at":"2026-03-06T18:13:04.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T21:48:26.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slice-soft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-06T17:50:32.000Z","updated_at":"2026-03-06T18:13:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/slice-soft/ss-keel-addon-template","commit_stats":null,"previous_names":["slice-soft/ss-keel-addon-template"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/slice-soft/ss-keel-addon-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slice-soft%2Fss-keel-addon-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slice-soft%2Fss-keel-addon-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slice-soft%2Fss-keel-addon-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slice-soft%2Fss-keel-addon-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slice-soft","download_url":"https://codeload.github.com/slice-soft/ss-keel-addon-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slice-soft%2Fss-keel-addon-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-08T02:19:08.150Z","updated_at":"2026-03-08T02:19:08.690Z","avatar_url":"https://github.com/slice-soft.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://cdn.slicesoft.dev/boat.svg\" width=\"400\" /\u003e\n\n# Keel Addon Template\nKeel is a Go framework for building REST APIs with modular \narchitecture, automatic OpenAPI, and built-in validation.\n\n[![CI](https://github.com/slice-soft/ss-keel-core/actions/workflows/ci.yml/badge.svg)](https://github.com/slice-soft/ss-keel-core/actions)\n![Go](https://img.shields.io/badge/Go-1.25+-00ADD8?logo=go\u0026logoColor=white)\n[![Go Report Card](https://goreportcard.com/badge/github.com/slice-soft/ss-keel-core)](https://goreportcard.com/report/github.com/slice-soft/ss-keel-core)\n[![Go Reference](https://pkg.go.dev/badge/github.com/slice-soft/ss-keel-core.svg)](https://pkg.go.dev/github.com/slice-soft/ss-keel-core)\n![License](https://img.shields.io/badge/License-MIT-green)\n![Made in Colombia](https://img.shields.io/badge/Made%20in-Colombia-FCD116?labelColor=003893)\n\n\nThis repository is a **base template** for building **Keel Framework** addons.\nIt helps developers and companies quickly create functional addons with CI/CD, testing, and automated releases.\nIt also serves as a reference for the `keel-addon.json` contract used by the CLI to download and integrate addons into Keel projects.\n\n---\n\n## 🚀 Template structure\n\n```\nss-keel-addon-template/\n├── .github/workflows/    # CI and release workflows (commented by default)\n│   ├── ci.yml\n│   └── release.yml\n├── .gitignore\n├── .release-please-manifest.json\n├── .release-please-config.json\n├── CONTRIBUTING.md       # Contribution guide\n├── keel-addon.json       # Addon contract for the CLI\n├── LICENSE\n├── README.md\n└── go.mod\n```\n\n---\n\n## 🛠️ Create a new addon\n\nRecommended option (GitHub Template):\n\n1. Open this repository on GitHub.\n2. Click **Use this template**.\n3. Create your new repository from this template.\n4. Clone your new repository locally.\n\nAlternative option (manual clone):\n\n```bash\n# Clone the template into a new project\ngit clone https://github.com/slice-soft/ss-keel-addon-template.git my-addon\ncd my-addon\n\n# Delete the existing git history\nrm -rf .git\n\n# Initialize a new git repository\ngit init\n\n# Update the Go module path\ngo mod edit -module github.com/my-company/my-addon\ngo mod tidy\n```\n\n\u003e `my-addon` is now ready to be developed and registered in Keel.\n\nEdit `keel-addon.json` with your addon's real values (`name`, `repo`, `version`, `steps`, etc.).\n\n---\n\n## ⚡️ Keel integration\n\n* Place your addon logic in `internal/addon`.\n* Define metadata in `keel-addon.json`. This file is the contract the Keel CLI validates to install and integrate the addon.\n\n```json\n{\n  \"name\": \"my-addon\",\n  \"version\": \"0.1.0\",\n  \"description\": \"Short addon description\",\n  \"register\": true,\n  \"repo\": \"github.com/your-user/your-repo\",\n  \"steps\": [\n    {\n      \"file\": \"cmd/main.go\",\n      \"action\": \"append\",\n      \"snippet\": \"// TODO: add addon initialization here\",\n      \"flags\": []\n    }\n  ]\n}\n```\n\n* The Keel CLI uses this file to:\n  * Resolve the module to download (`repo`).\n  * Validate that the addon matches the expected format.\n  * Execute `steps` to integrate changes automatically.\n  * Register the addon when applicable (`register`).\n\n---\n\n## 🧭 `keel add` flow in the ecosystem\n\nThe CLI supports two installation paths:\n\n1. **Official or verified addons**\n\n```bash\nkeel add gorm\n```\n\n* `gorm` is interpreted as an alias.\n* The CLI checks the `ss-keel-addons` alias repository.\n* If the alias exists, it gets the addon URL, downloads it, and validates its `keel-addon.json`.\n* Then it executes the defined `steps` to integrate it automatically into the project.\n\n2. **Unofficial addons or addons not verified by SliceSoft/community**\n\n```bash\nkeel add github.com/user/repo\n```\n\n* The CLI uses the provided repository directly.\n* It downloads the module and validates its `keel-addon.json`.\n* If validation passes, it applies the automatic integration steps the same way as official addons.\n\n---\n\n## 📚 Alias library: `ss-keel-addons`\n\n`ss-keel-addons` works as an alias catalog/library for addons.\n\n* Stores the relationship `alias -\u003e repository URL`.\n* Lets the CLI verify whether an alias exists before installing.\n* Centralizes official or community-verified addons.\n* Acts as the entry point for pre-validation before the automatic download and integration process.\n\n---\n\n## 🤚 CI/CD and releases\n\nThis repository is a template, so workflows are intentionally shipped **commented out** to avoid accidental executions after cloning:\n\n* `.github/workflows/ci.yml`\n* `.github/workflows/release.yml`\n\nTo enable CI/CD in your new addon repository:\n\n1. Uncomment both workflow files.\n2. Push to GitHub to validate that Actions run correctly.\n\n---\n\n## 💡 Recommendations\n\n* Keep your addons independent and modular.\n* Use Keel events and guards to extend functionality without touching the core.\n* Document each addon in its own project README.\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for setup and repository-specific rules.\nThe base workflow, commit conventions, and community standards live in [ss-community](https://github.com/slice-soft/ss-community/blob/main/CONTRIBUTING.md).\n\n## Community\n\n| Document | |\n|---|---|\n| [CONTRIBUTING.md](https://github.com/slice-soft/ss-community/blob/main/CONTRIBUTING.md) | Workflow, commit conventions, and PR guidelines |\n| [GOVERNANCE.md](https://github.com/slice-soft/ss-community/blob/main/GOVERNANCE.md) | Decision-making, roles, and release process |\n| [CODE_OF_CONDUCT.md](https://github.com/slice-soft/ss-community/blob/main/CODE_OF_CONDUCT.md) | Community standards |\n| [VERSIONING.md](https://github.com/slice-soft/ss-community/blob/main/VERSIONING.md) | SemVer policy and breaking changes |\n| [SECURITY.md](https://github.com/slice-soft/ss-community/blob/main/SECURITY.md) | How to report vulnerabilities |\n| [MAINTAINERS.md](https://github.com/slice-soft/ss-community/blob/main/MAINTAINERS.md) | Active maintainers |\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Links\n\n- Website: [keel-go.dev](https://keel-go.dev)\n- GitHub: [github.com/slice-soft/ss-keel-cli](https://github.com/slice-soft/ss-keel-cli)\n- Documentation: [docs.keel-go.dev](https://docs.keel-go.dev)\n\n---\n\nMade by [SliceSoft](https://slicesoft.dev) — Colombia 💙\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslice-soft%2Fss-keel-addon-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslice-soft%2Fss-keel-addon-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslice-soft%2Fss-keel-addon-template/lists"}