Skip to content

gregory-chatelier/gitlab-webhook-issue-wise

Repository files navigation

Intelligent GitLab Issue Automation

Our goal ? Enhance communication, prevent information overload, and ensure high-quality, actionable insights directly within your GitLab workflow.

🚀 What is it?

IssueFlow AI (name might change :-)) is a system that leverages AI agents to automatically analyze, process, and respond to GitLab issue events. Imagine a smart assistant that understands your issues, suggests solutions, clarifies ambiguities, and keeps your team focused on what matters most.

💡 Architecture at a Glance

The project operates as a modular, event-driven system built around a central message broker (RabbitMQ). It's composed of several specialized microservices that work in harmony:

  • Webhook Gateway (Go): The entry point for all GitLab webhook events. It receives raw events and publishes them to the broker for asynchronous processing.
  • Issue Aggregator (Go): Fetches comprehensive issue data from the GitLab API, enriches it with context, and republishes it to the broker.
  • IssueFlow Crew (Python): The brain of the operation. This service orchestrates various AI agents (powered by CrewAI) to analyze issue content, determine relevance, generate insights, and prepare actions. It's designed to be smart, ensuring only valuable and pertinent information is propagated.
  • Issue Synchronizer (Go): Applies the AI-generated actions (like adding comments, applying labels, or updating issue details) back to GitLab via its API.

Data Flow Pipeline:

graph TD
    GitLab -- Webhook Event --> WebhookGateway
    WebhookGateway -- Characterized Event --> RabbitMQ
    RabbitMQ -- Enriched Data --> IssueAggregator
    IssueAggregator -- Aggregated Data --> RabbitMQ
    RabbitMQ -- Commands --> IssueFlowCrew
    IssueFlowCrew -- Processed Actions --> RabbitMQ
    RabbitMQ -- API Updates --> IssueSynchronizer
    IssueSynchronizer -- Updates --> GitLab
Loading

🛠️ Technologies Used

Our system is built with a modern, polyglot approach, utilizing the strengths of different technologies:

  • Go: For high-performance, concurrent microservices (Webhook Gateway, Issue Aggregator, Issue Synchronizer).
  • Python: For the AI-powered orchestration and agentic workflows (IssueFlow Crew), leveraging libraries like CrewAI, Pydantic, and Pika.
  • RabbitMQ: As the central message broker, enabling asynchronous communication and decoupling between services.
  • Docker: For containerization, ensuring consistent environments across development and deployment.
  • GitLab CI/CD: For automated build, test, and deployment pipelines.

✨ Key Capabilities

  • Intelligent Routing: Analyzes incoming issue content to determine which specialized AI flows are most relevant.
  • Output Quality Control: Filters out generic or low-value AI suggestions, ensuring only actionable insights are propagated.
  • Multi-language Support: Detects and translates content to maintain linguistic consistency.
  • Automated Actions: Can automatically add comments, apply labels, and update issues based on AI analysis.

🚀 Quick Install & Evaluation

For a quick and easy way to get IssueFlow AI up and running for evaluation or development, we provide an all-in-one Docker Compose setup. This bundles all services into a single, manageable environment.

To get started, navigate to the deploy/all-in-one-docker directory and follow the instructions in its README.md:

cd deploy/all-in-one-docker
cat README.md

This setup is ideal for demonstrating core functionalities.

🤝 Get Involved

We're building a powerful tool to streamline GitLab issue management. If you're interested in contributing, exploring the codebase, or have ideas for new features, dive in! The project is structured for clarity and collaboration.


About

AI agents that automatically analyze, process, and respond to GitLab issue events

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published