{"id":28957914,"url":"https://github.com/nayjest/gito","last_synced_at":"2026-01-26T21:20:24.759Z","repository":{"id":290752741,"uuid":"975457832","full_name":"Nayjest/Gito","owner":"Nayjest","description":"An AI-powered GitHub code review tool that uses LLMs to detect high-confidence, high-impact issues—such as security vulnerabilities, bugs, and maintainability concerns.","archived":false,"fork":false,"pushed_at":"2026-01-18T22:51:18.000Z","size":2081,"stargazers_count":118,"open_issues_count":54,"forks_count":10,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-18T23:17:28.453Z","etag":null,"topics":["ai","ai-code-analysis","ai-code-review","ai-code-reviewer","ai-coding","ai-coding-assistant","code-analysis","code-audit","code-quality","code-review","developer-tools","github","github-actions","github-copilot","gito","llm","python","software-engineering","static-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Nayjest.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":"2025-04-30T10:49:12.000Z","updated_at":"2026-01-18T17:34:09.000Z","dependencies_parsed_at":"2025-04-30T12:12:11.957Z","dependency_job_id":"e2f9fb7e-2195-41f4-990b-423b663000c8","html_url":"https://github.com/Nayjest/Gito","commit_stats":null,"previous_names":["nayjest/github-ai-code-review","nayjest/ai-code-review","nayjest/gito"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/Nayjest/Gito","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nayjest%2FGito","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nayjest%2FGito/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nayjest%2FGito/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nayjest%2FGito/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nayjest","download_url":"https://codeload.github.com/Nayjest/Gito/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nayjest%2FGito/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28788368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:13:08.818Z","status":"ssl_error","status_checked_at":"2026-01-26T21:13:08.448Z","response_time":59,"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":["ai","ai-code-analysis","ai-code-review","ai-code-reviewer","ai-coding","ai-coding-assistant","code-analysis","code-audit","code-quality","code-review","developer-tools","github","github-actions","github-copilot","gito","llm","python","software-engineering","static-analysis"],"created_at":"2025-06-23T22:34:51.956Z","updated_at":"2026-01-26T21:20:24.747Z","avatar_url":"https://github.com/Nayjest.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"#\"\u003e\u003cimg alt=\"Gito: AI Code Reviewer\" src=\"https://raw.githubusercontent.com/Nayjest/Gito/main/press-kit/logo/gito-ai-code-reviewer_logo-180.png\" align=\"center\" width=\"180\"\u003e\u003c/a\u003e\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pypi.org/project/gito.bot/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/gito.bot\" alt=\"PYPI Release\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Nayjest/Gito/actions/workflows/code-style.yml\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/Nayjest/Gito/actions/workflows/code-style.yml/badge.svg\" alt=\"PyLint\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Nayjest/Gito/actions/workflows/tests.yml\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/Nayjest/Gito/actions/workflows/tests.yml/badge.svg\" alt=\"Tests\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Nayjest/Gito/main/coverage.svg\" alt=\"Code Coverage\"\u003e\n\u003ca href=\"https://github.com/vshymanskyy/StandWithUkraine/blob/main/README.md\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/refs/heads/main/badges/StandWithUkraine.svg\" alt=\"Stand With Ukraine\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Nayjest/Gito/blob/main/LICENSE\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=license\u0026message=MIT\u0026color=d08aff\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**Gito** is an open-source **AI code reviewer** that works with any language model provider.\nIt detects issues in GitHub pull requests or local codebase changes—instantly, reliably, and without vendor lock-in.\n\nGet consistent, thorough code reviews in seconds—no waiting for human availability.\n\n## 📋 Table of Contents\n- [Why Gito?](#-why-gito)\n- [Perfect For](#-perfect-for)\n- [Supported Platforms \u0026 Integrations](#-supported-platforms--integrations)\n- [Security \u0026 Privacy](#-security--privacy)\n- [Quickstart](#-quickstart)\n  - [1. Review Pull Requests via GitHub Actions](#1-review-pull-requests-via-github-actions)\n  - [2. Running Code Analysis Locally](#2-running-code-analysis-locally)\n- [Configuration](#-configuration)\n- [Guides \u0026 Reference](#-guides--reference)\n  - [Command Line Reference](https://github.com/Nayjest/Gito/blob/main/documentation/command_line_reference.md) ↗\n  - [Configuration Cookbook](https://github.com/Nayjest/Gito/blob/main/documentation/config_cookbook.md) ↗\n  - [GitHub Setup Guide](https://github.com/Nayjest/Gito/blob/main/documentation/github_setup.md) ↗\n  - Integrations\n    - [Linear Integration](https://github.com/Nayjest/Gito/blob/main/documentation/linear_integration.md) ↗ \n    - [Atlassian Jira Integration](https://github.com/Nayjest/Gito/blob/main/documentation/jira_integration.md) ↗\n  - [Troubleshooting](https://github.com/Nayjest/Gito/blob/main/documentation/troubleshooting.md) ↗\n  - [Documentation generation with Gito](https://github.com/Nayjest/Gito/blob/main/documentation/documentation_generation.md) ↗\n- [Known Limitations](#-known-limitations)\n- [Development Setup](#-development-setup)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n## ✨ Why Gito?\u003ca id=\"-why-gito\"\u003e\u003c/a\u003e\n\n- [⚡] **Lightning Fast:** Get detailed code reviews in seconds, not days—powered by parallelized LLM processing\n- [🔧] **Vendor Agnostic:** Works with any language model provider (OpenAI, Anthropic, Google, local models, etc.)\n- [🔒] **Private \u0026 Secure:** Your code goes directly to your chosen LLM inference provider or local model—no intermediary servers\n- [🌐] **Universal:** Supports all major programming languages and frameworks  \n- [🔍] **Comprehensive Analysis:** Detect issues across security, performance, maintainability, best practices, and much more  \n- [📈] **Consistent Quality:** Never tired, never biased—consistent review quality every time  \n- [🚀] **Easy Integration:** Automatically reviews pull requests via CI/CD workflows (GitHub Actions, etc), posts results as PR comments, and reacts to maintainer comments\n- [🎛️] **Infinitely Flexible:** Adapt to any project's standards—configure review rules, severity levels, and focus areas, build custom workflows \n\n## 🎯 Perfect For\u003ca id=\"-perfect-for\"\u003e\u003c/a\u003e\n\n- Solo developers who want expert-level code review without the wait\n- Teams looking to catch issues before human review\n- Open source projects maintaining high code quality at scale\n- CI/CD pipelines requiring automated quality gates\n\n✨ See [code review in action](https://github.com/Nayjest/Gito/pull/99) ✨\n\n## 🌐 Supported Platforms \u0026 Integrations\u003ca id=\"-supported-platforms--integrations\"\u003e\u003c/a\u003e\n\n### 🧩 Git Platforms\n| Platform  | Status               |\n|-----------|----------------------|\n| GitHub    | ✅ Supported         |\n| GitLab    | 🧪 Supported (Beta)  |\n| Bitbucket | 🛠️ Planned           |\n\n\u003e ℹ️ Gito ships ready-to-use CI/CD workflows for these platforms, \n\u003e with full support for triggering actions via PR comments, automatic review posting, and PR lifecycle integration.  \n\u003e \n\u003e Not on this list? Gito works anywhere—via custom CI/CD pipelines or directly from the CLI.\n### 🤖 LLM Providers / Runtimes\n| Provider / Runtime                                                                              | Status        |\n|-------------------------------------------------------------------------------------------------|---------------|\n| OpenAI API                                                                                      | ✅ Supported  |\n| Anthropic API                                                                                      | ✅ Supported  |\n| Google API                                                                                       | ✅ Supported  |\n| Local LLM Services\u003cbr/\u003e`Ollama, LM Studio, vLLM, etc.`                                          | ✅ Supported  |\n| Embedded Inference\u003cbr/\u003e`PyTorch / Transformers`                                                 | ✅ Supported  |\n| Any OpenAI-compatible API\u003cbr\u003e`Mistral, xAI, Azure, Amazon Bedrock, OpenRouter, Fireworks, etc.` | ✅ Supported  |\n\n### 🗂️ Issue Trackers\n| Tool   | Status        | Documentation |\n|--------|---------------|---------------|\n| Jira   | ✅ Supported  | [Atlassian Jira Integration](https://github.com/Nayjest/Gito/blob/main/documentation/jira_integration.md) ↗ |\n| Linear | ✅ Supported  | [Linear Integration](https://github.com/Nayjest/Gito/blob/main/documentation/linear_integration.md) ↗ |\n\n\u003e 🚀 More platforms and integrations are coming — Gito is built to grow with your stack.\n\n## 🔒 Security \u0026 Privacy\u003ca id=\"-security--privacy\"\u003e\u003c/a\u003e\n\nGito keeps your source code private by design:\nit is designed as a **stateless, client-side tool** with a strict zero-retention policy.\n\n- **No middleman:** Source code is transmitted directly from your environment (CI/CD runner or local machine)\n  to your explicitly configured LLM provider.\n  If you use a local model, your code never leaves your network.\n  We never see your code.\n- **No data collection:** Your code isn't stored, logged, or retained by Gito.\n- **Fully auditable:** 100% open source. Verify every line yourself.\n\n## 🚀 Quickstart\u003ca id=\"-quickstart\"\u003e\u003c/a\u003e\n\n### 1. Review Pull Requests via GitHub Actions\u003ca id=\"1-review-pull-requests-via-github-actions\"\u003e\u003c/a\u003e\n\nCreate a `.github/workflows/gito-code-review.yml` file with the following content:\n```yaml\nname: \"Gito: AI Code Review\"\non:\n  pull_request:\n    types: [opened, synchronize, reopened]\n  workflow_dispatch:\n    inputs:\n      pr_number:\n        description: \"Pull Request number\"\n        required: true\njobs:\n  review:\n    runs-on: ubuntu-latest\n    permissions: { contents: read, pull-requests: write } # 'write' for leaving the summary comment\n    steps:\n    - uses: actions/checkout@v6\n      with: { fetch-depth: 0 }\n    - name: Set up Python\n      uses: actions/setup-python@v6\n      with: { python-version: \"3.13\" }\n    - name: Install AI Code Review tool\n      run: pip install gito.bot~=4.0\n    - name: Run AI code analysis\n      env:\n        LLM_API_KEY: ${{ secrets.LLM_API_KEY }}\n        LLM_API_TYPE: openai\n        MODEL: \"gpt-5.2\"\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        PR_NUMBER_FROM_WORKFLOW_DISPATCH: ${{ github.event.inputs.pr_number }}\n      run: |\n        gito --verbose review\n        gito github-comment --token ${{ secrets.GITHUB_TOKEN }}\n    - uses: actions/upload-artifact@v6\n      with:\n        name: ai-code-review-results\n        path: |\n          code-review-report.md\n          code-review-report.json\n```\n\n\u003e ⚠️ Make sure to add `LLM_API_KEY` to your repository's GitHub secrets.\n\n💪 Done!  \nPRs to your repository will now receive AI code reviews automatically. ✨  \nSee [GitHub Setup Guide](https://github.com/Nayjest/Gito/blob/main/documentation/github_setup.md) for more details.\n\n### 2. Running Code Analysis Locally\u003ca id=\"2-running-code-analysis-locally\"\u003e\u003c/a\u003e\n\n#### Initial Local Setup\n\n**Prerequisites:** \n- [Python](https://www.python.org/downloads/) 3.11 / 3.12 / 3.13  \n- [Git](https://git-scm.com)\n\n#### Option A: Install via pip (recommended)\n\n**Step 1:** Install [gito.bot](https://github.com/Nayjest/Gito) using [pip](https://en.wikipedia.org/wiki/Pip_(package_manager)).\n```bash\npip install gito.bot\n```\n\n\u003e **Troubleshooting:**  \n\u003e pip may also be available via cli as `pip3` depending on your Python installation.\n\nTo install from repository source / specific branch:\n```bash\npip install git+https://github.com/Nayjest/Gito.git@\u003cbranch-or-tag\u003e\n```\n#### Option B: Windows Standalone Installer\n\nDownload the latest Windows installer from [Releases](https://github.com/Nayjest/Gito/releases).\n\nThe installer includes:\n- Standalone executable (no Python required)\n- Automatic PATH configuration\n- Start Menu shortcuts\n- Easy uninstallation\n\n**Step 2:** Perform initial setup\n\nThe following command will perform one-time setup using an interactive wizard.\nYou will be prompted to enter LLM configuration details (API type, API key, etc).\nConfiguration will be saved to `~/.gito/.env`.\n```bash\ngito setup\n```\n\n\u003e **Troubleshooting:**  \n\u003e On some systems, `gito` command may not become available immediately after installation.  \n\u003e Try restarting your terminal or running `python -m gito` instead.\n\n\n#### Perform your first AI code review locally\n\n**Step 1:** Navigate to your repository root directory.  \n**Step 2:** Switch to the branch you want to review.  \n**Step 3:** Run the following command:\n```bash\ngito review\n```\n\n\u003e **Note:** This will analyze the current branch against the repository main branch by default.  \n\u003e Files that are not staged for commit will be ignored.  \n\u003e See `gito --help` for more options.\n\n**Reviewing remote repository**\n```bash\ngito remote git@github.com:owner/repo.git \u003cFEATURE_BRANCH\u003e..\u003cMAIN_BRANCH\u003e\n```\nUse interactive help for details:\n```bash\ngito remote --help\n```\n\n## 🔧 Configuration\u003ca id=\"-configuration\"\u003e\u003c/a\u003e\n\nGito uses a two-layer configuration model:\n\n| Scope | Location | Purpose |\n|-------|----------|---------|\n| **Environment** | `~/.gito/.env` or OS environment variables | LLM provider, model, API keys, concurrency |\n| **Project** | `\u003crepo\u003e/.gito/config.toml` | Review behavior, prompts, templates, integrations |\n\n\u003e **Note:** Environment configuration defines external resources and credentials — it's machine-specific and never committed to version control. Project configuration defines review behavior and can be shared across your team.\n\n### Environment Configuration\n\nEnvironment settings control LLM inference, API Keys and apply system-wide.\n\nGito uses [ai-microcore](https://github.com/Nayjest/ai-microcore) for vendor-agnostic LLM access. All settings are configured via OS environment variables or `.env` files.\n\n**Default location:** `~/.gito/.env`  \n*(Created automatically via `gito setup`)*\n\n#### Example\n```bash\n# ~/.gito/.env\nLLM_API_TYPE=openai\nLLM_API_KEY=sk-...\nLLM_API_BASE=https://api.openai.com/v1/\nMODEL=gpt-5.2\nMAX_CONCURRENT_TASKS=20\n```\n\nFor all supported options, see the [ai-microcore configuration guide](https://github.com/Nayjest/ai-microcore?tab=readme-ov-file#%EF%B8%8F-configuring).\n\n#### CI/CD Environments\n\nIn CI workflows, configure LLM settings via workflow environment variables. Use your platform's secrets management (GitHub Secrets, GitLab CI Variables) for API keys.\n\n\n### Project Configuration\n\nGito supports per-repository customization through a `.gito/config.toml` file placed at the root of your project. This allows you to tailor code review behavior to your specific codebase, coding standards, and workflow requirements.\n\n#### Configuration Inheritance Model\n\nProject settings follow a layered override model:\n\n**Bundled Defaults** ([config.toml](https://github.com/Nayjest/Gito/blob/main/gito/config.toml)) → **Project Config** (`\u003cyour-repo\u003e/.gito/config.toml`)\n\nAny values defined in your project's `.gito/config.toml` are merged on top of the built-in defaults. You only need to specify the settings you want to change—everything else falls back to sensible defaults.\n\n#### Common Customizations\n\n- **Review prompts** — Tailor AI instructions, review criteria, and quality thresholds\n- **Output templates** — Customize report format for GitHub comments and CLI\n- **Post-processing** — Python snippets to filter or transform detected issues\n- **Bot behavior** — Mention triggers, retries, comment handling\n- **Pipeline integrations** — Jira, Linear, etc.\n\nExplore the bundled [config.toml](https://github.com/Nayjest/Gito/blob/main/gito/config.toml) for the complete list of available options.\n\n#### Example\n```toml\n# .gito/config.toml\nmention_triggers = [\"gito\", \"/check\"]\ncollapse_previous_code_review_comments = true\n\n# Files to provide as context\naux_files = [\n    'documentation/command_line_reference.md'\n]\n\nexclude_files = [\n    'poetry.lock',\n]\n\n[prompt_vars]\n# Custom instructions injected into the system prompts\nawards = \"\"  # Disable awards\nrequirements = \"\"\"\n- All public functions must have docstrings.\n\"\"\"\n```\n\nFor detailed guidance, see the [📖 Configuration Cookbook](https://github.com/Nayjest/Gito/blob/main/documentation/config_cookbook.md).\n\n\n## 📚 Guides \u0026 Reference\u003ca id=\"-guides--reference\"\u003e\u003c/a\u003e\n\nFor more detailed information, check out these articles:\n\n- [Command Line Reference](https://github.com/Nayjest/Gito/blob/main/documentation/command_line_reference.md)\n- [Configuration Cookbook](https://github.com/Nayjest/Gito/blob/main/documentation/config_cookbook.md)\n- [GitHub Setup Guide](https://github.com/Nayjest/Gito/blob/main/documentation/github_setup.md)\n- Integrations\n  - [Linear Integration](https://github.com/Nayjest/Gito/blob/main/documentation/linear_integration.md)\n  - [Atlassian Jira Integration](https://github.com/Nayjest/Gito/blob/main/documentation/jira_integration.md)\n- [Documentation generation with Gito](https://github.com/Nayjest/Gito/blob/main/documentation/documentation_generation.md)\n- [Troubleshooting](https://github.com/Nayjest/Gito/blob/main/documentation/troubleshooting.md)\n\nOr browse all documentation in the [`/documentation`](https://github.com/Nayjest/Gito/tree/main/documentation) directory.\n\n\n## 🚧 Known Limitations\u003ca id=\"-known-limitations\"\u003e\u003c/a\u003e\n\nGito cannot modify files inside `.github/workflows` when reacting to GitHub PR comments (e.g., \"Gito fix issue 2\").  \nThis is a GitHub security restriction that prevents workflows from modifying other workflow files using the default `GITHUB_TOKEN`.\n\nWhile using a Personal Access Token (PAT) with the `workflow` scope would bypass this limitation, it is not recommended as a workaround.\nPATs have broader permissions, longer lifespans, and are tied to individual user accounts, making them less secure than the default `GITHUB_TOKEN` for CI/CD pipelines.\n\n\n## 💻 Development Setup\u003ca id=\"-development-setup\"\u003e\u003c/a\u003e\n\nClone the repository and navigate to it:\n```bash\ngit clone https://github.com/Nayjest/Gito.git\ncd Gito\n```\n\u003cdiv\u003e\u003cimg align=\"right\" width=\"460\" src=\"https://raw.githubusercontent.com/Nayjest/Gito/4_0_1/press-kit/character/gito_fullbody_1.jpg\"\u003e\n\nInstall dependencies:\n```bash\nmake install\n```\n\u003e **Note:** If `make` is not available on your system, you can run the underlying command directly:\n\u003e ```bash\n\u003e pip install -e \".[dev]\"\n\u003e ```\n\u003e See the [Makefile](https://github.com/Nayjest/Gito/blob/main/Makefile) for all available commands.\n\nFormat code and check style:\n```bash\nmake black\nmake cs\n```\n\nRun tests:\n```bash\npytest\n```\n\u003c/div\u003e\n\n## 🤝 Contributing\u003ca id=\"-contributing\"\u003e\u003c/a\u003e\n\n**Looking for a specific feature or having trouble?**  \nContributions are welcome! ❤️  \nSee [CONTRIBUTING.md](https://github.com/Nayjest/Gito/blob/main/CONTRIBUTING.md) for details.\n\n## 📝 License\u003ca id=\"-license\"\u003e\u003c/a\u003e\n\nLicensed under the [MIT License](https://github.com/Nayjest/Gito/blob/main/LICENSE).\n\n© 2025–2026 [Vitalii Stepanenko](mailto:mail@vitaliy.in)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayjest%2Fgito","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnayjest%2Fgito","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnayjest%2Fgito/lists"}