惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
IT之家
IT之家
博客园_首页
博客园 - 【当耐特】
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
GbyAI
GbyAI
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
H
Help Net Security
T
Tailwind CSS Blog
B
Blog RSS Feed
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
博客园 - 叶小钗
雷峰网
雷峰网
量子位

Show HN

GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap
GitHub - alitariq4589/ci-medic: AI triage for failed CI r...
alitariq4589 · 2026-06-26 · via Show HN

AI triage for failed CI runs. When your pipeline goes red, ci-medic reads the logs, finds the real error in the noise, and posts an AI-based verdict — code, flake, infra, dependency, or config — right where you already look.

Secrets are redacted before any model sees them. Point it at a local model and your logs never leave your network.

Not a button you click to "explain this error". ci-medic runs automatically on failure, distills thousands of noisy log lines to the real error, redacts secrets, and posts a structured verdict on CI systems where single hosted AI assistant doesn't reach.

Supported CI platforms

  • GitHub Actions: sticky editable PR comment, zero setup
  • Jenkins: build description (requires one-time setup on your agent; native plugin on the roadmap)
  • GitLab CI: planned
  • Bitbucket Pipelines: planned

Any other CI can use the CLI against a log file today.


Installation

GitHub Actions

Add a triage job that runs only on failure:

# .github/workflows/ci.yml
  triage:
    if: failure()
    needs: [build, test]          # the jobs to triage
    runs-on: ubuntu-latest
    permissions:
      actions: read               # read failed job logs
      pull-requests: write        # post the comment
    steps:
      - uses: alitariq4589/ci-medic@v0.1.0
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }} 
          api-key: ${{ secrets.CI_MEDIC_API_KEY }}   # optional (see Model providers)

github-token uses the built-in token in the pipeline automatically. Without api-key, ci-medic still posts the extracted error window, just without the AI verdict. The comment is sticky and re-runs update it in place.

Full walkthrough with screenshots: docs/github-actions.md

Jenkins

Jenkins has no marketplace that provisions tools into pipelines, so setup has two roles: an admin makes ci-medic available on the agent once, then pipeline authors add a small block. (A native Jenkins plugin that removes the admin step is on the roadmap.)

1. Admin setup: make ci-medic available on your agent (one-time). Any one of:

  • Install it on the agent environment: pip install git+https://github.com/alitariq4589/ci-medic
  • Or, if you run Docker-based agents, add it to your agent image.

Provide the model key to the agent as the CI_MEDIC_API_KEY environment variable (or a Jenkins credential injected into the stage).

2. Pipeline author setup: add the triage block. Tee build output to a file, then triage it on failure:

post {
  failure {
    script {
      def verdict = sh(
        script: 'ci-medic jenkins --file ci-medic-console.log --job "$JOB_NAME"',
        returnStdout: true
      ).trim()
      currentBuild.description = verdict
    }
  }
}

where your build stage writes the log:

sh '''#!/bin/bash
  set -o pipefail
  { ./your-build-and-test; } 2>&1 | tee ci-medic-console.log
'''

set -o pipefail keeps the stage failing on error (so the failure block fires); the verdict lands at the top of the build page. No Jenkins API token and no script-approval needed because ci-medic only reads a file.

→ Full walkthrough with screenshots: docs/jenkins.md

CLI / local use

Run ci-medic on any log file (no CI integration required):

pip install git+https://github.com/alitariq4589/ci-medic

# Distill only: No key, nothing leaves your machine:
ci-medic analyze --file failed.log --no-llm

# Full AI-based triage:
export CI_MEDIC_API_KEY="your-key" # can be openrouter, anthropic, openai API token
ci-medic analyze --file failed.log

Model providers

ci-medic works with any OpenAI-compatible API or the Anthropic API. Set the provider via environment variables or .ci-medic.yml:

  • OpenRouter: one key, many models (this is default as it includes free models too. The default openrouter selected models are in src/ci_medic/config.py) - Tested
  • OpenAI - Untested
  • Anthropic - Untested
  • Ollama: local, zero egress - Untested
  • llama.cpp (llama-server): local, zero egress - Untested
  • Any other OpenAI-compatible endpoint
export CI_MEDIC_API_KEY="your-key"
export CI_MEDIC_BASE_URL="https://openrouter.ai/api/v1"   # provider endpoint
export CI_MEDIC_MODEL="your-model"                         # provider's model id

You choose the model; ci-medic doesn't lock you to one. With no model specified, it tries a priority chain and falls through on rate-limit or no-credit, recording which it used.


Private mode (local model)

ci-medic's code is open source (Apache-2.0) — on GitHub you reference the public action, and you're free to fork or vendor it. What "private" controls is your data: where your logs go.

Point ci-medic at a local model server and no log content ever leaves your network:

export CI_MEDIC_BASE_URL="http://localhost:11434/v1"   # Ollama (or llama.cpp's llama-server)
export CI_MEDIC_MODEL="your-local-model"
# set no cloud key

The distillation and secret-redaction steps always run locally regardless of provider; only the distilled, redacted window is ever sent to a model, and with a local model, even that stays on your machine.


Privacy & security

Before any model call, ci-medic redacts known secret formats and runs an entropy filter for high-randomness strings in unknown formats. (See docs/redaction.md for the exact patterns covered.) For zero egress, use a local model and set no cloud key.


Advanced configuration

Optional .ci-medic.yml in your repo root (see examples/.ci-medic.yml):

provider: openai-compat                       # or: anthropic
base_url: https://openrouter.ai/api/v1
char_budget: 12000
ignore_jobs: ["lint", "codeql"]               # skip these jobs
extra_signals: ["MY_CUSTOM_ERROR_TOKEN"]      # extra strings to treat as errors

Environment variables override the file.


Roadmap

  • GitHub Actions and Jenkins (CLI-based) ship in v0.1.

  • Jenkins plugin (install from the Update Center, no agent setup),

  • GitLab CI

  • flaky-test memory that tracks chronic flakes across runs

  • hardware/LAVA log triage.

License

Apache-2.0