Experimental ยท .NET 10 ยท MIT

Turn noisy logs into actionable GitHub issues โ€” automatically.

A .NET 10 console app that ingests logs from files or Azure Event Hubs, analyzes them with the GitHub Copilot SDK, and opens deduplicated GitHub issues through the GitHub MCP Server.

$ dotnet run -- Frank802/my-app ./logs
โ†’ Scanning logsโ€ฆ 14 entries above Error
โ†’ Copilot session opened (claude-sonnet-4.5)
โœ“ Created issue #128 โ€” NullReferenceException in OrderService
โœ“ Deduplicated โ€” matches existing #112

Why you'll like it

๐Ÿง 

AI-powered triage

Each log entry gets its own Copilot session that identifies errors, exceptions, and root causes โ€” not just regex matches.

๐Ÿ”

Automatic deduplication

Searches existing issues via the GitHub MCP Server before opening anything new, so your tracker stays clean.

๐Ÿ“ก

Pluggable sources

Read from local .log/.txt files or stream continuously from Azure Event Hubs.

โšก

Parallel by default

A configurable concurrency gate processes multiple log entries simultaneously without hammering the API.

๐Ÿ› ๏ธ

Configurable everywhere

Layered config: CLI args โ†’ environment variables โ†’ appsettings.Local.json โ†’ appsettings.json.

๐Ÿณ

Docker-ready

Ship it in a container with the Copilot CLI preinstalled. One docker run and you're triaging.

How it works

  1. 1
    Ingest

    Logs are read from the configured source (filesystem or Event Hub) and filtered to your minimum severity.

  2. 2
    Analyze

    Each entry is dispatched to a dedicated Copilot session with a tailored system prompt.

  3. 3
    Deduplicate

    The session calls search_issues on the GitHub MCP Server to avoid filing duplicates.

  4. 4
    File

    If unique, create_issue opens a well-structured issue in your target repository.

Quickstart

Prerequisites

  • .NET 10 SDK
  • GitHub Copilot CLI on PATH
  • Active GitHub Copilot subscription
  • GitHub PAT with repo scope

Run it

git clone https://github.com/Frank802/ghcp-logs-analyzer.git
cd ghcp-logs-analyzer/src
dotnet restore && dotnet build

# point it at your repo + a folder of logs
dotnet run -- owner/repo ../sample-logs