Home / Companies / Mergify / Blog / June 2026

June 2026 Summaries

16 posts from Mergify

Filter
Month: Year:
Post Summaries Back to Blog
In the discussion about the limitations of using path filters as a Continuous Integration (CI) merge gate, the text explains that while path filters can optimize CI by skipping unnecessary tests, they fail when a check becomes required, as they do not report a status when a workflow is skipped. This results in a pending status that blocks merges, leading to the need for workarounds like implementing a "fake" green status, which undermines the integrity of the CI process. The document suggests that a merge gate should provide a positive signal indicating that necessary tests have run and passed, and recommends using path filters for non-gating workflows. It highlights the use of tools like Mergify to manage scopes and ensure accurate test coverage based on which parts of the repository are affected by a pull request, thereby maintaining the reliability of branch protection without relying on path filters as a gate.
Jun 26, 2026 1,876 words in the original blog post.
In the blog post, Julien Danjou critiques the practice of using GitHub labels to control continuous integration (CI) workflows, arguing that this approach is flawed due to GitHub's event handling, which triggers a full workflow run whenever any label is changed, leading to unnecessary compute costs and potential errors in code merging. The post explains that GitHub Actions cannot filter events based on specific labels, causing any label change to rerun the entire pipeline, including unrelated tests, and risking skipped tests being mistakenly marked as passed due to branch protection rules. Danjou suggests that the reliance on labels for CI control is misguided and proposes alternatives, such as using workflow_dispatch for manual test runs or employing a merge queue system like Mergify, which runs expensive tests only when a pull request is about to merge, ensuring that only necessary tests are performed at the right time. This approach not only reduces compute costs but also ensures that required tests are genuinely executed before code merges, avoiding the pitfalls of skipped or falsely passed checks and providing a more reliable and efficient CI/CD process.
Jun 26, 2026 2,227 words in the original blog post.
When a production deployment fails at Mergify, a 66-line GitHub Actions job now freezes the merge queue to prevent further merges onto a broken release. This change was implemented after realizing that failed deployments were not automatically halting subsequent merges, which led to inconsistencies between different deployment scopes like the engine backend and dashboard frontend. The freezing mechanism activates when any of the five deployment scopes fail, blocking further merges until a human intervenes to lift the freeze, thereby ensuring that the issue is addressed before additional changes are deployed. The system is designed to prevent further complications by stopping the merge queue, which forces the team to focus on resolving the failure without piling on more changes. While the solution does not automatically rectify failed deployments, it serves as a loud alert that something is wrong and needs immediate attention. This process is deliberately human-mediated to ensure that the problem is fully understood and resolved before normal operations resume, maintaining the integrity and reliability of the deployment pipeline.
Jun 24, 2026 1,413 words in the original blog post.
GitHub's native merge queue is a cost-effective and integrated solution for managing pull requests (PRs) for most teams, but it can become inefficient as PR volume increases and complexity grows. Teams often encounter issues such as backlogs from PRs piling up, hotfixes being delayed by feature work, excessive CI costs due to redundant test runs, and inadequate handling of flaky tests and monorepo complexities. Mergify offers an advanced alternative with features like batching PRs, prioritizing hotfixes, scope-aware testing, and better handling of flaky tests, leading to reduced CI times and costs. Migration to Mergify is straightforward, often taking just a day per repository, and many teams report significant improvements and wish they had transitioned sooner.
Jun 24, 2026 1,449 words in the original blog post.
In the article, Alexandre Gaubert discusses the common misuse of aria-label attributes in web development, explaining that they often do not enhance accessibility as intended and can sometimes cause accessibility failures. The author argues that developers frequently add aria-labels to buttons under the misconception that they are necessary for screen readers, but in reality, these labels replace the button's visible text rather than complement it, often leading to discrepancies between what is visually displayed and what is read by assistive technology. This practice can result in issues such as nonfunctional voice commands and violations of WCAG guidelines when the visible text and aria-labels do not match. Gaubert highlights the importance of understanding how screen readers work and suggests that developers should use aria-labels sparingly, primarily for icon-only controls, while recommending visually hidden text for better accessibility. He encourages developers to experience their own interfaces with screen readers to better grasp the impact of these attributes and to ensure that their implementations truly enhance accessibility.
Jun 22, 2026 1,037 words in the original blog post.
In a detailed exploration of the inefficiencies associated with PostgreSQL's `INSERT ... ON CONFLICT DO UPDATE` statement, particularly when rows are rewritten unnecessarily, Mehdi Abaakouk highlights the costly impact of such operations on high-volume tables. The issue arises when entire rows are rewritten even if no actual data change occurs, resulting in increased write amplification, tuple churn, and replication traffic, particularly on static tables. To address this, Abaakouk suggests implementing a simple SQL fix using a `WHERE` clause to prevent updates when no data has changed, thereby reducing unnecessary overhead. However, the solution must be applied judiciously, as some updates may have side effects or dependencies that necessitate leaving them unsuppressed. The article emphasizes the importance of aligning update strategies with data behavior and identifies areas in the codebase where further optimization can reduce resource consumption and improve database performance.
Jun 20, 2026 2,820 words in the original blog post.
Mergify's merge queue now offers three distinct modes—serial, parallel, and isolated—each balancing safety, latency, and throughput differently, thus catering to varying needs of software development teams. The serial mode provides maximum safety by testing pull requests cumulatively, ensuring no semantic conflicts occur, but at the cost of increased latency, making it ideal for teams whose pull requests frequently touch the same code. Parallel mode allows concurrent testing of pull requests that do not overlap in scope, maintaining safety without sacrificing concurrency, which is beneficial for large monorepos with independent code areas. Isolated mode prioritizes maximum throughput by testing batches independently against the latest main branch, accepting a bounded risk of semantic conflicts but significantly speeding up the merge process, suitable for teams with independent pull requests that require rapid integration. Each mode offers a strategic trade-off, allowing teams to choose based on their specific requirements and risk tolerance, with the understanding that the safest option is not always the most efficient.
Jun 17, 2026 1,880 words in the original blog post.
A routine PostgreSQL disk alert led to the discovery and subsequent resolution of over 150 GB of unnecessary storage usage due to inefficient data management practices. The investigation revealed that a significant portion of the storage was occupied by oversized indexes, redundant JSON data repeated across millions of rows, and unused output blobs linked to GitHub check-runs. To address these inefficiencies, the author implemented several optimizations, such as eliminating redundant data storage and restructuring the database to use a lookup table for app metadata. The most immediate and substantial space savings were achieved by dropping unnecessary indexes, which freed up about 64 GB of space without altering the database's read paths. The author emphasizes the importance of treating disk alerts as opportunities for audits rather than mere maintenance tasks, as this approach can lead to significant storage savings and improved database performance over time.
Jun 15, 2026 1,620 words in the original blog post.
In a monorepo environment, managing a single merge queue can result in inefficiencies, as all pull requests (PRs) wait in line and a failure in one PR can delay others. Mergify addresses this issue by using scopes to group related changes and run unrelated ones in parallel, which optimizes the merge process by allowing independent testing and merging of PRs. Scopes are defined by mapping specific areas of the codebase, such as frontend or backend, to file patterns, allowing PRs that only affect certain areas to be tested together. This scope-aware batching minimizes the impact of failures to only those changes that are related, enabling continuous flow even if a PR fails in one scope. The company has implemented this system in their monorepo, grouping changes into scopes like installer, dashboard, and engine, and running tests in parallel, which enhances efficiency by preventing unrelated changes from being delayed by issues in other parts of the codebase.
Jun 12, 2026 792 words in the original blog post.
In a strategic decision to address performance issues caused by the primary key configuration on a 4-million-row table, the author swapped the primary key, necessitating a brief, controlled downtime rather than opting for a zero-downtime migration process. The table in question, critical for aggregating CI job metrics, had primary key columns that contributed to unnecessary data duplication and aggregation inefficiencies, leading to query timeouts in production. By removing two columns from the primary key, which were redundant due to the implementation of a dedicated runner-analytics view, the author simplified the table structure, reducing costs associated with excess cardinality. Although the standard approach would involve creating a shadow table to maintain continuous availability, the non-critical nature of the job-metrics view allowed for a straightforward key swap that involved a brief, ten-minute downtime. This decision was facilitated by disabling the frontend view and halting the aggregation service, ensuring no disruption to end-users. The operation included consolidating rows under the new key, dropping unnecessary indexes, and reconstructing the trigger to align with the updated schema, ultimately enhancing performance without affecting customers. The experience highlighted the importance of separating schema changes from data backfill operations and emphasized that downtime can be an acceptable trade-off, especially when it simplifies the process and accelerates delivery of improvements.
Jun 11, 2026 1,667 words in the original blog post.
Rémy Duthu discusses his evolving approach to using multiple parallel AI coding agents, highlighting how his initial limitation of two agents due to cognitive load has shifted to managing a dozen with improved efficiency. Originally, the challenge was the intense monitoring required for each agent, which multiplied with the addition of more agents. However, advancements in agent autonomy reduced the need for constant supervision, enabling him to run more agents simultaneously. The real shift came from recognizing and addressing the cognitive load associated with tracking and retrieving specific agent sessions, which was more burdensome than the mere number of agents. By implementing a system of session renaming and pinning, Duthu streamlined monitoring and retrieval processes, effectively managing up to ten sessions concurrently. Despite these improvements, the increased volume of tasks completed by agents has shifted the bottleneck to the review process, necessitating new strategies for managing code reviews, such as breaking down changes into smaller, more manageable pieces and relying on a layer of agentic reviewers before human intervention. Duthu acknowledges the shift from writing code to orchestrating agents and is actively exploring the impact on review workflows to ensure quality and efficiency.
Jun 08, 2026 1,992 words in the original blog post.
In June 2026, Bun, a software project, underwent a massive rewrite in Rust, resulting in a single pull request (PR) with 6,755 commits and over a million lines of code, highlighting the constraints of the traditional PR system. This rewrite, primarily authored by Claude over nine days, has underscored the shift in bottlenecks from code production to integration due to AI's capabilities in rapid code generation. The PR was too large for thorough human review, relying instead on automated tests and trust in the lead developer, which brought attention to the need for new approaches in handling such large-scale code changes. The article suggests that managing complex projects with a stack-based approach across multiple smaller, manageable PRs could facilitate better review, testing, and integration processes. This method would allow each part of the code to be independently reviewed, bisected, and reverted, maintaining human oversight while accommodating AI-accelerated production speeds.
Jun 05, 2026 2,393 words in the original blog post.
Mergify has introduced a new "Fix with Mergify" feature that employs a language learning model (LLM) to automatically correct errors in the .mergify.yml configuration files, opening pull requests with the suggested fixes. The real innovation lies not in the AI itself but in the robust system of checks and balances surrounding it, including schema validation, access controls, and usage quotas, which ensure that any changes proposed by the AI are safe and controlled. This system is designed to prevent potential damage by validating outputs through a strict schema and involving human oversight before any changes are merged. The engineering focus is on creating a secure framework that constrains the LLM's output, rather than the model's internal processes, ensuring that any proposed changes are valid and reviewed by a human. While the model can be easily swapped without affecting these safeguards, the emphasis is on maintaining security and correctness through thorough validation and controlled access, making the AI's role more about enhancing efficiency than compromising safety.
Jun 05, 2026 1,745 words in the original blog post.
Julien Danjou’s blog post explains the process and considerations involved in updating a feature branch that has fallen behind the main branch in Git, focusing on the choice between using merge and rebase commands. The article describes the technical steps for both merging and rebasing, highlighting how each method affects the commit history and potential conflicts that may arise. While merging integrates the main branch into the feature branch with a new merge commit, preserving the original history, rebasing rewrites the branch's history by applying new main commits followed by the original feature branch commits, resulting in a linear history. The choice between these methods should be guided by team policies on branch history and the potential for conflicts, especially if branches are shared. Additionally, the post suggests the use of a merge queue to handle the integration of multiple pull requests efficiently, ensuring that the branch being reviewed is the one that ultimately gets merged, thus avoiding frequent re-syncs and unexpected CI failures.
Jun 02, 2026 1,356 words in the original blog post.
Julien Danjou's blog post discusses a solution to the common issue of Alembic's multiple-heads error, which occurs when parallel migrations result in conflicting database histories. By leveraging Git's ability to track the order of file commits, the team developed a library called alembic-git-revisions to dynamically determine the down_revision for each migration, thus eliminating the need for hardcoded guesses. This approach ensures that migration histories remain linear and avoids the frequent occurrence of empty merge migrations. The solution has been successfully implemented in production, reducing errors and maintaining compatibility with existing migrations. Additionally, the library can handle environments where Git history is unavailable by pre-computing migration chains. This method parallels the concept of a merge queue, which tests changes in the actual order they occur, providing a reliable source of truth for both code and database migrations.
Jun 02, 2026 890 words in the original blog post.
Julien Danjou's blog post describes the creation of Mergify Stacks, a tool designed to facilitate the use of stacked pull requests (PRs) without requiring engineers to adopt a new git workflow. The tool simplifies the process of managing PRs by maintaining a single local branch and using a stable Change-Id pattern inspired by Gerrit to track changes across rebases, without modifying GitHub or replacing git itself. This approach contrasts with other tools like Graphite and GitHub's gh-stack, which rely on a branch-per-PR model and can complicate the workflow with a tree of branches. Mergify Stacks enables developers to maintain a linear view of their git history while allowing individual adoption without organizational changes. It also offers an unexpected advantage for AI-driven coding agents by making large, complex PRs more manageable and reviewable through smaller, distinct commits. The tool is open-source, and its CLI is available on GitHub, allowing users to integrate it into their workflow with minimal setup.
Jun 02, 2026 1,984 words in the original blog post.