refactor: Rename project to JIRA AI Fixer
Generic name for broader market appeal
This commit is contained in:
parent
27b72e3ccd
commit
3b6b0a657d
|
|
@ -1,10 +1,10 @@
|
|||
# ACI AI Fixer
|
||||
# JIRA AI Fixer
|
||||
|
||||
AI system for automated JIRA Support Case analysis with COBOL/SQL/JCL code intelligence.
|
||||
|
||||
## Overview
|
||||
|
||||
ACI AI Fixer monitors JIRA Support Cases, analyzes the reported issues, searches relevant code in Bitbucket repositories, and proposes fixes using AI-powered code understanding.
|
||||
JIRA AI Fixer monitors JIRA Support Cases, analyzes the reported issues, searches relevant code in Bitbucket repositories, and proposes fixes using AI-powered code understanding.
|
||||
|
||||
## Architecture
|
||||
|
||||
|
|
|
|||
10
api/main.py
10
api/main.py
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
ACI AI Fixer - FastAPI Backend
|
||||
JIRA AI Fixer - FastAPI Backend
|
||||
"""
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
|
@ -15,14 +15,14 @@ logger = logging.getLogger(__name__)
|
|||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
"""Startup and shutdown events."""
|
||||
logger.info("🚀 ACI AI Fixer starting up...")
|
||||
logger.info("🚀 JIRA AI Fixer starting up...")
|
||||
# Initialize database, connections, etc.
|
||||
yield
|
||||
logger.info("👋 ACI AI Fixer shutting down...")
|
||||
logger.info("👋 JIRA AI Fixer shutting down...")
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
title="ACI AI Fixer",
|
||||
title="JIRA AI Fixer",
|
||||
description="AI system for automated JIRA Support Case analysis",
|
||||
version="0.1.0",
|
||||
lifespan=lifespan,
|
||||
|
|
@ -45,7 +45,7 @@ app.include_router(config.router, prefix="/api/config", tags=["config"])
|
|||
|
||||
@app.get("/")
|
||||
async def root():
|
||||
return {"status": "ok", "service": "ACI AI Fixer", "version": "0.1.0"}
|
||||
return {"status": "ok", "service": "JIRA AI Fixer", "version": "0.1.0"}
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
api:
|
||||
image: python:3.11-slim
|
||||
working_dir: /app
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
command:
|
||||
- pip install --quiet --no-cache-dir fastapi uvicorn && echo "ZnJvbSBmYXN0YXBpIGltcG9ydCBGYXN0QVBJCmZyb20gZmFzdGFwaS5taWRkbGV3YXJlLmNvcnMgaW1wb3J0IENPUlNNaWRkbGV3YXJlCgphcHAgPSBGYXN0QVBJKHRpdGxlPSJKSVJBIEFJIEZpeGVyIiwgdmVyc2lvbj0iMC4xLjAiKQphcHAuYWRkX21pZGRsZXdhcmUoQ09SU01pZGRsZXdhcmUsIGFsbG93X29yaWdpbnM9WyIqIl0sIGFsbG93X2NyZWRlbnRpYWxzPVRydWUsIGFsbG93X21ldGhvZHM9WyIqIl0sIGFsbG93X2hlYWRlcnM9WyIqIl0pCgpAYXBwLmdldCgiLyIpCmFzeW5jIGRlZiByb290KCk6CiAgICByZXR1cm4geyJzdGF0dXMiOiAib2siLCAic2VydmljZSI6ICJKSVJBIEFJIEZpeGVyIiwgInZlcnNpb24iOiAiMC4xLjAifQoKQGFwcC5nZXQoIi9oZWFsdGgiKQphc3luYyBkZWYgaGVhbHRoKCk6CiAgICByZXR1cm4geyJzdGF0dXMiOiAiaGVhbHRoeSJ9CgpAYXBwLmdldCgiL2FwaS9pc3N1ZXMvc3RhdHMvc3VtbWFyeSIpCmFzeW5jIGRlZiBzdGF0cygpOgogICAgcmV0dXJuIHsidG90YWxfaXNzdWVzIjogMCwgInBlbmRpbmciOiAwLCAiYW5hbHl6ZWQiOiAwLCAiYWNjZXB0ZWQiOiAwLCAicmVqZWN0ZWQiOiAwLCAic3VjY2Vzc19yYXRlIjogMC4wfQoKQGFwcC5nZXQoIi9hcGkvaXNzdWVzIikKYXN5bmMgZGVmIGxpc3RfaXNzdWVzKCk6CiAgICByZXR1cm4geyJ0b3RhbCI6IDAsICJpdGVtcyI6IFtdfQoKQGFwcC5nZXQoIi9hcGkvY29uZmlnL2ludGVncmF0aW9ucyIpCmFzeW5jIGRlZiBnZXRfaW50ZWdyYXRpb25zKCk6CiAgICByZXR1cm4geyJqaXJhX3VybCI6ICIiLCAiamlyYV9wcm9qZWN0cyI6IFtdLCAibGxtX3Byb3ZpZGVyIjogIm9wZW5yb3V0ZXIiLCAib3BlbnJvdXRlcl9tb2RlbCI6ICJtZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3Q6ZnJlZSIsICJlbWJlZGRpbmdfcHJvdmlkZXIiOiAibG9jYWwifQoKQGFwcC5nZXQoIi9hcGkvY29uZmlnL3JlcG9zaXRvcmllcyIpCmFzeW5jIGRlZiBsaXN0X3JlcG9zKCk6CiAgICByZXR1cm4gW10KCkBhcHAuZ2V0KCIvYXBpL2NvbmZpZy9tb2R1bGVzIikKYXN5bmMgZGVmIGxpc3RfbW9kdWxlcygpOgogICAgcmV0dXJuIFtdCgpAYXBwLnBvc3QoIi9hcGkvd2ViaG9vay9qaXJhIikKYXN5bmMgZGVmIGppcmFfd2ViaG9vaygpOgogICAgcmV0dXJuIHsic3RhdHVzIjogImFjY2VwdGVkIn0K" | base64 -d > main.py && exec uvicorn main:app --host 0.0.0.0 --port 8000
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.aci-fixer.rule=Host(`aci-fixer.startdata.com.br`)
|
||||
- traefik.http.routers.aci-fixer.entrypoints=websecure
|
||||
- traefik.http.routers.aci-fixer.tls.certresolver=le
|
||||
- traefik.http.services.aci-fixer.loadbalancer.server.port=8000
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=aci
|
||||
- POSTGRES_PASSWORD=aci_secret_2026
|
||||
- POSTGRES_DB=aci_fixer
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- internal
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- internal
|
||||
|
||||
qdrant:
|
||||
image: qdrant/qdrant:v1.7.4
|
||||
volumes:
|
||||
- qdrant_data:/qdrant/storage
|
||||
networks:
|
||||
- internal
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
qdrant_data:
|
||||
|
||||
networks:
|
||||
internal:
|
||||
traefik_public:
|
||||
external: true
|
||||
|
|
@ -26,7 +26,7 @@ The ACI JIRA AI Fixer Admin Portal is a modern, intuitive web interface that all
|
|||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 🤖 ACI AI Fixer admin@aci.com ⚙️ 🔔 │
|
||||
│ 🤖 JIRA AI Fixer admin@aci.com ⚙️ 🔔 │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ O Portal Administrativo do ACI JIRA AI Fixer é uma interface web moderna e intu
|
|||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 🤖 ACI AI Fixer admin@aci.com ⚙️ 🔔 │
|
||||
│ 🤖 JIRA AI Fixer admin@aci.com ⚙️ 🔔 │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ The client has GitHub Copilot licenses, however this tool **is not applicable**
|
|||
3. Does not offer embeddings or semantic search functionality
|
||||
4. Does not allow indexing or querying code repositories
|
||||
|
||||
GitHub Copilot will continue to be used by developers in their daily work, while the ACI AI Fixer solution uses Azure OpenAI for automation.
|
||||
GitHub Copilot will continue to be used by developers in their daily work, while the JIRA AI Fixer solution uses Azure OpenAI for automation.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -603,7 +603,7 @@ O cliente possui licenças de GitHub Copilot, porém esta ferramenta **não é a
|
|||
3. Não oferece funcionalidade de embeddings ou busca semântica
|
||||
4. Não permite indexar ou consultar repositórios de código
|
||||
|
||||
O GitHub Copilot continuará sendo usado pelos desenvolvedores no dia-a-dia, enquanto a solução ACI AI Fixer usa Azure OpenAI para automação.
|
||||
O GitHub Copilot continuará sendo usado pelos desenvolvedores no dia-a-dia, enquanto a solução JIRA AI Fixer usa Azure OpenAI para automação.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export default function Layout({ children }: LayoutProps) {
|
|||
<div className="p-4 flex items-center gap-2">
|
||||
<Cpu className="h-8 w-8 text-blue-400" />
|
||||
<div>
|
||||
<h1 className="font-bold text-lg">ACI AI Fixer</h1>
|
||||
<h1 className="font-bold text-lg">JIRA AI Fixer</h1>
|
||||
<p className="text-xs text-gray-400">v0.1.0</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -64,7 +64,7 @@ export default function Layout({ children }: LayoutProps) {
|
|||
<header className="bg-white border-b border-gray-200 px-6 py-4">
|
||||
<div className="flex items-center justify-between">
|
||||
<h2 className="text-xl font-semibold text-gray-800">
|
||||
{navigation.find(n => n.href === location.pathname)?.name || 'ACI AI Fixer'}
|
||||
{navigation.find(n => n.href === location.pathname)?.name || 'JIRA AI Fixer'}
|
||||
</h2>
|
||||
<div className="flex items-center gap-4">
|
||||
<span className="text-sm text-gray-500">
|
||||
|
|
|
|||
Loading…
Reference in New Issue