Script icon
Docker icon
Download icon
If icon
Parallel icon
Schedule icon

Review GitHub issue duplicate candidates with local MiniLM

Review recent GitHub issues with local MiniLM embeddings, explanatory word overlap, and bounded reports. No paid AI API or GitHub write access.

Categories
AI

How it works

  1. Validate the public repository and bounded sampling settings.
  2. Download recently updated open issues from GitHub Search and validate its response.
  3. In parallel, compute local 384-dimensional MiniLM embeddings and lexical Jaccard scores.
  4. Rank unique pairs above the cosine cutoff and save JSON and Markdown review artifacts. Fewer than two usable issues takes an explicit no-comparison branch instead of claiming health.

What you get

  • A bounded, reproducible review queue with issue links, raw cosine scores and explanatory word overlap.
  • Source-sample counts, the pinned model revision, and an explicit read-only policy.
  • Visible failures for invalid input, malformed or incomplete API responses, and invalid model output. No labels, comments, assignments or issue closures are written to GitHub.

Who it's for

Open-source maintainers and developer-platform teams reviewing English-language issue titles without sharing them with a hosted inference API.

Why orchestrate this with Kestra

Collection, normalization, independent analyses and reporting have separate task histories and retry boundaries. Artifacts stay inspectable in internal storage, unlike a monolithic cron job. This is a stateless recent-sample review, not the persistent OpenAI/Qdrant auto-triage blueprint.

Prerequisites

Kestra 2.0, the Python Script plugin, a Docker-compatible task runner, and outbound HTTPS to GitHub, PyPI and Hugging Face. The CPU model and quantized ONNX weights are Apache-2.0. First use downloads public assets; no GPU, vector database or paid model service is required.

Secrets

None. Anonymous GitHub Search is rate-limited; a rate-limit error fails rather than becoming an empty successful report. Raw public API responses remain in Kestra internal storage.

Quick start

  1. Import the flow and execute the defaults against a public repository.
  2. Open rank_report (or no_comparison) task outputs and inspect both review artifacts and sample scope.
  3. Tune the cutoff and limits for your repository; similarity is not calibrated confidence.
  4. Enable the disabled weekly trigger only when ready. Nothing is deployed to a cloud account.

How to extend

Add an approved human-review step, a repository-specific title normalizer, or a separately authorized notification channel. Do not automatically close issues based on these heuristics. The model is English-oriented and truncates titles to 256 tokens; only titles are embedded.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.