{"id":30254902,"url":"https://github.com/shift/garnix-insights","last_synced_at":"2026-04-16T00:33:03.432Z","repository":{"id":309954507,"uuid":"1038170266","full_name":"shift/garnix-insights","owner":"shift","description":"CI/CD insights tool for Garnix.io with CLI, server, and MCP support","archived":false,"fork":false,"pushed_at":"2026-04-13T17:09:12.000Z","size":249,"stargazers_count":3,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T19:08:53.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-AGPL-3.0.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2025-08-14T18:26:15.000Z","updated_at":"2026-02-15T15:26:49.000Z","dependencies_parsed_at":"2025-08-14T20:30:25.936Z","dependency_job_id":"5d59a1d6-00a1-4307-a0ae-5d2dbfd95bea","html_url":"https://github.com/shift/garnix-insights","commit_stats":null,"previous_names":["shift/garnix-insights"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/shift/garnix-insights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shift%2Fgarnix-insights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shift%2Fgarnix-insights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shift%2Fgarnix-insights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shift%2Fgarnix-insights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shift","download_url":"https://codeload.github.com/shift/garnix-insights/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shift%2Fgarnix-insights/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31866347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2025-08-15T14:23:51.681Z","updated_at":"2026-04-16T00:33:03.419Z","avatar_url":"https://github.com/shift.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Garnix Insights\n\nA multi-mode Rust application for CI/CD insights from Garnix.io. Available as a CLI tool, HTTP server, and MCP (Model Context Protocol) server for AI assistant integration.\n\n## Features\n\n- **Multiple Operating Modes**: CLI, HTTP server, and MCP server\n- **Build Analysis**: Real-time status, detailed logs, and failure analysis\n- **Output Formats**: Human-readable, JSON, and plain text\n- **AI Assistant Integration**: Full MCP support for GitHub Copilot, Claude, and other AI tools\n- **Error Handling**: Graceful handling of API failures and network issues\n\n## Installation\n\n### From Cargo (Recommended)\n\n```bash\ncargo install garnix-insights\n```\n\n### From Nix Flake\n\n```bash\n# Install to profile\nnix profile install github:shift/garnix-insights\n\n# Or run directly\nnix run github:shift/garnix-insights -- --help\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/shift/garnix-insights.git\ncd garnix-insights\nnix build\n./result/bin/garnix-insights --help\n```\n\n## Usage\n\n### CLI Mode\n\nSet your JWT token as an environment variable:\n\n```bash\nexport GARNIX_JWT_TOKEN=\"your_jwt_token_here\"\n```\n\n#### Getting Your JWT Token\n\n**Currently, the JWT token is only available through browser developer tools:**\n\n1. **Login to Garnix.io**: Go to https://garnix.io and log in to your account\n2. **Open Developer Tools**: Press F12 or right-click → \"Inspect Element\"\n3. **Go to Network Tab**: Click on the \"Network\" tab in developer tools\n4. **Make an API Request**: Navigate around the Garnix.io site to trigger API calls\n5. **Find API Request**: Look for requests to `api.garnix.io` in the network list\n6. **Copy JWT from Cookie**: \n   - Click on any API request\n   - Go to \"Request Headers\" section\n   - Find the `Cookie` header\n   - Copy the JWT value from the cookie\n\n**Note**: This method is not ideal - I've reached out to the Garnix.io maintainers about providing a better solution for API access. Thanks to @lassulus for helping connect me with the team!\n\n#### Commands\n\nCheck build status for a commit:\n\n```bash\ngarnix-insights fetch --commit-id 3402d0072ce57370ed58ce28fe879c32a3501392\n```\n\nGet detailed build logs:\n\n```bash\ngarnix-insights logs --commit-id 3402d0072ce57370ed58ce28fe879c32a3501392\n```\n\n**Output Formats:**\n\n```bash\ngarnix-insights fetch --commit-id \u003cCOMMIT\u003e --format json    # JSON output\ngarnix-insights fetch --commit-id \u003cCOMMIT\u003e --format human   # Human-readable (default)\ngarnix-insights fetch --commit-id \u003cCOMMIT\u003e --format plain   # Plain text\n```\n\n### HTTP Server Mode\n\n```bash\nexport GARNIX_JWT_TOKEN=\"your_jwt_token_here\"\ngarnix-insights server\n```\n\nAccess the API at `http://127.0.0.1:8080/build-status/{commit_id}`\n\n### MCP Server Mode\n\nFor AI assistant integration:\n\n```bash\nexport GARNIX_JWT_TOKEN=\"your_jwt_token_here\"\n# Optional: choose protocol version (latest|stable|legacy|YYYY-MM-DD)\nexport GARNIX_MCP_PROTOCOL_VERSION=stable\n# or pass as a flag: --mcp-version 2025-03-26\ngarnix-insights mcp\n```\n\nSee MCP protocol details in MCP-USAGE.md.\n\n## AI Assistant Integration\n\n### GitHub Copilot\n\nAdd this to your `.github/copilot-instructions.md`:\n\n```markdown\n## Garnix CI/CD Integration\n- Use `garnix-insights fetch --commit-id \u003cSHA\u003e` to check build status\n- Use `garnix-insights logs --commit-id \u003cSHA\u003e` for failure analysis  \n- Always check builds before suggesting deployments\n- Parse JSON output for programmatic analysis\n```\n\n### Claude Desktop\n\nAdd to your configuration file:\n\n```json\n{\n  \"mcpServers\": {\n    \"garnix-insights\": {\n      \"command\": \"garnix-insights\",\n      \"args\": [\"mcp\"],\n      \"env\": {\n        \"GARNIX_JWT_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\nFor setup instructions, see [MCP-CONFIGURATION.md](MCP-CONFIGURATION.md).\n\n## Development\n\n### Prerequisites\n\n- Nix with flakes enabled\n- Rust toolchain (via Nix shell)\n\n### Getting Started\n\n```bash\n# Clone the repository\ngit clone https://github.com/shift/garnix-insights.git\ncd garnix-insights\n\n# Enter development environment\nnix develop\n\n# Run tests\ncargo test\n\n# Build for development  \ncargo build\n\n# Run CI checks\nnix flake check\n```\n\n### Publishing\n\nSee [PUBLISHING.md](PUBLISHING.md) for detailed instructions on publishing to crates.io.\n\n## License\n\nThis project is licensed under **AGPL-3.0** with commercial approval requirements.\n\n- **Open Source Use**: Free for open source projects under AGPL-3.0 terms\n- **Commercial Use**: Requires separate commercial license approval\n- See [LICENSE-AGPL-3.0.md](LICENSE-AGPL-3.0.md) for full license terms\n- See [LICENSE-ANALYSIS.md](LICENSE-ANALYSIS.md) for dependency analysis\n\n## Support\n\n- **Issues**: https://github.com/shift/garnix-insights/issues\n- **Documentation**: Guides in [AI-INSTRUCTIONS.md](AI-INSTRUCTIONS.md) and [MCP-CONFIGURATION.md](MCP-CONFIGURATION.md)\n- **Contributing**: Follow standard Rust/Nix contribution practices\n# Clean release trigger\ntest: trigger clean release check\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshift%2Fgarnix-insights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshift%2Fgarnix-insights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshift%2Fgarnix-insights/lists"}