Quick Overview
Quick Overview This workflow runs daily (or on demand) to analyze GitHub Actions re-runs for a specific workflow and branch, identify flaky jobs by comparing pass/fail history across attempts, summarize likely causes with OpenAI, post a report to Slack, file GitHub issues for confirmed flakes, and store rates in an n8n Data Table. How it works Runs every morning on a schedule or manually to start the analysis. Fetches recent completed GitHub Actions runs for the configured repository and branch, then keeps only the target workflow’s successful and failed runs and includes earlier attempts when a run was re-run. Retrieves all GitHub Actions jobs for each run attempt, paging through results so matrix workflows are fully captured. Aggregates job outcomes by job name to classify jobs as flaky, confirmed flaky (failed then passed on the same commit via re-run), broken, or one-off, and calculates flake rates and common failing step names. Compares current flake rates against the historical flaky_jobs n8n Data Table to report only new or significantly worse flaky jobs. Uses OpenAI to group the reported flaky jobs by likely intermittent cause based on the failing step names, then posts a formatted summary to the configured Slack channel. Creates GitHub issues (up to the configured limit) for confirmed flaky jobs and upserts the latest per-job flake rates and verdicts into the flaky_jobs Data Table. Setup Create an HTTP Header Auth credential for GitHub with header name Authorization and value Bearer that has permission to read Actions, and add a GitHub credential that can create issues in the target repository. Configure the Settings values for owner, repo, workflow_name (exactly as shown in GitHub Actions), branch, and optional thresholds like runs_to_read, min_observations, and report_when_worse_by. Create an n8n Data Table named flaky_jobs with columns job_key, job_name, flake_rate, failures, runs_seen, verdict, and last_seen. Add an OpenAI credential for the chat model used to summarize groups of flakes. Add a Slack credential and set the target channel name in slack_channel (for example #ci). An n8n automation workflow template by Daniel Shashko.
Daniel Shashko
web
free
Others in the same category, ranked by how often they are opened.