September 2025 Summaries
12 posts from Mergify
Filter
Month:
Year:
Post Summaries
Back to Blog
Floating versions like :latest, ^, and ~, while seemingly convenient, pose significant risks to software reproducibility and security by leading to broken builds, hidden regressions, and potential supply chain attacks. The text highlights the dangers of relying on these floating tags, such as unexpected changes in GitHub Actions, Docker images, and package dependencies that can disrupt CI pipelines or introduce malicious code, exemplified by incidents like the SolarWinds breach and npm credential phishing. To mitigate these risks, it's recommended to pin dependencies to exact, immutable versions using tools like Dependabot and Renovate, which update dependencies safely and explicitly through reviewable pull requests. By enforcing pinning through CI tools and avoiding untracked installs, users can maintain control over their software environment, ensuring updates occur on their terms and reducing exposure to upstream changes. This approach emphasizes that reproducibility and security are essential features, not optional luxuries, urging developers to "pin everything" for greater peace of mind and reliability in CI/CD processes.
Sep 25, 2025
1,026 words in the original blog post.
PostgreSQL's Row Level Security (RLS) is a database feature that shifts permission verification from the application layer to the database itself, providing stronger safety by preventing unauthorized data access and ensuring consistent enforcement of security policies across all queries. Traditionally, permissions are managed at the application level, but this can lead to scattered checks, inconsistencies, and potential data leaks. RLS addresses these issues by enforcing policies directly within the database schema, transforming PostgreSQL into a trusted enforcer of access control. This approach, while enhancing security, introduces new challenges in schema design, debugging, and operational workflows that require developers to adapt their practices and deepen their understanding of database management. RLS is best suited for applications where safety, consistency, and regulatory compliance are paramount, but it necessitates careful consideration of performance implications and a cultural shift in how teams approach database access control.
Sep 18, 2025
1,707 words in the original blog post.
Merge queues have become an integral part of modern software development, evolving from niche solutions to an industry standard due to the increasing need for stable main branches amidst high PR velocities. Initially emerging from the challenges faced by early 2000s developers, such as Ben Elliston and later Graydon Hoare with the Rust project, these systems automated the process of ensuring a "green" main branch by testing PRs before merging. Early solutions like Bors and Homu set the foundation, which was further developed into tools like Bors-NG and embraced by large-scale organizations and platforms like GitHub and GitLab. These tools have automated PR merging, reduced manual intervention, and improved engineering efficiency, culminating in GitHub's native merge queue feature, which validates the approach and brings it to a broader audience. Despite some limitations in native options, third-party services continue to enhance functionality, demonstrating the critical role of merge queues in maintaining software quality and developer productivity.
Sep 10, 2025
3,053 words in the original blog post.
Building a Jenkins plugin intended to send Jenkins job events into Mergify CI Insights turned into an unexpectedly enriching journey involving a deep dive into Java, Jenkins internals, and extensive community code review. Initially anticipated as a straightforward weekend task, the project required understanding Jenkins' plugin infrastructure, which, despite its age, proved stable and well-designed, with helpful tooling like Maven and IntelliJ facilitating development. The process of publishing the plugin to the Jenkins community index was particularly enlightening, offering mentorship through detailed human reviews that scrutinized the code for bugs, API usage, and design choices. The experience highlighted the significance of community collaboration and continuous learning, as well as the advantages of AI-assisted programming with tools like GitHub Copilot and Claude. Ultimately, the endeavor underscored the value of embracing the process and infrastructure of older systems, which can offer robust support and unexpected educational opportunities, while also enhancing Jenkins users' ability to integrate job events efficiently into Mergify CI Insights.
Sep 08, 2025
855 words in the original blog post.
Pull requests (PRs) are a fundamental aspect of modern software development, facilitating code quality, collaboration, and knowledge sharing, but they can also become bottlenecks as teams grow. Mastering PR management and implementing automation through tools like GitHub Actions or Mergify can significantly enhance engineering velocity by streamlining reviews, tests, and merges. PRs are essential for structured and safe code collaboration, especially in team settings or open-source projects, but they require discipline and best practices to avoid inefficiencies such as endless reviews, merge conflicts, and flaky tests. Best practices involve keeping PRs small, providing clear descriptions, and ensuring thorough communication. Automation helps scale PR management by handling tasks such as automated testing, quality gates, approvals, and notifications, reducing manual effort and allowing developers to focus more on coding. Tools like Mergify offer a more robust solution compared to custom workflows in GitHub Actions, enabling teams to manage merge queues, dependency management, and prioritization effectively, thereby improving merge efficiency and reducing CI churn.
Sep 05, 2025
820 words in the original blog post.
The article compares trunk-based development and Gitflow, two dominant branching models in software development, particularly in the context of modern Continuous Integration/Continuous Deployment (CI/CD) practices. Trunk-based development emphasizes speed and flow by having developers work off a single main branch, with short-lived feature branches that merge frequently, facilitating continuous integration and fast feedback loops. This model is advantageous for teams focused on rapid delivery, aligning with metrics like deployment frequency and lead time, especially when supported by automation tools like merge queues. Conversely, Gitflow offers more structure with long-lived feature branches and scheduled releases, appealing to organizations with rigid release cycles or heavy regulatory requirements, but often at the cost of slower feedback and increased merge complexity. The article advocates for trunk-based development for most modern teams, highlighting the need for supporting infrastructure to manage merge bottlenecks and maintain reliability, while acknowledging that Gitflow may still be suitable for environments prioritizing control over velocity.
Sep 05, 2025
1,021 words in the original blog post.
Feature branch workflow is a popular Git strategy that involves creating separate branches for each new feature, bugfix, or refactor, allowing developers to work in isolation and merge changes back into the mainline once they are ready. This method ensures a stable main branch, enables parallel development, integrates with pull requests, reviews, and CI pipelines, and supports code review processes. However, it can lead to challenges like merge conflicts if branches are left open for too long, and it may slow down integration compared to trunk-based development. While feature branches are beneficial for maintaining isolation and clear review checkpoints, modern automation tools like merge queues can mitigate issues by keeping branches updated and managing merges efficiently, blending the benefits of feature branching with the speed of trunk-based approaches.
Sep 04, 2025
638 words in the original blog post.
Bulldozer, an open-source tool for automating pull request (PR) merges, often becomes inefficient as teams grow and workflows become more complex due to its limited flexibility, inefficient PR updates, and static merging rules. As a response to these challenges, Mergify offers a more advanced solution with features like merge queues that optimize the merging process and reduce CI system strain by stacking and testing PRs sequentially. Mergify also provides a flexible rule system and merge templates for better customization and clarity in commit histories. Transitioning from Bulldozer to Mergify is straightforward, allowing teams to manage configurations more centrally and enjoy advanced features like dependency management and prioritization. This enhanced capability makes Mergify a compelling choice for modern development workflows, enabling teams to focus more on code quality and less on managing tooling inefficiencies.
Sep 04, 2025
1,025 words in the original blog post.
The .gitignore file is a useful Git feature designed to prevent the tracking of unnecessary files in a repository, typically specifying project-generated files like build artifacts and cache directories. However, a common misuse occurs when developers add personal editor or operating system files to .gitignore, cluttering the shared repository and frustrating collaborators. To address this, developers should use a global ignore file, configured in their system, to handle personal files such as editor backups or OS-specific junk, ensuring that .gitignore remains focused on files relevant to the project's requirements. By adhering to this practice, developers can maintain cleaner repositories, enhance team collaboration, and keep commit histories free from irrelevant changes.
Sep 04, 2025
392 words in the original blog post.
Modern code review is a crucial aspect of software development that enhances team productivity, fosters knowledge exchange, and cultivates team culture by transforming the review process into a collaborative and efficient operation. It serves as more than just a quality control measure; it acts as a shared safety net that catches defects early, ensures collective ownership, and provides historical context for future reference. The guide offers practical advice tailored to different roles within a team, such as code writers, reviewers, and facilitators, to optimize the review process, emphasizing the importance of clear communication, structured workflows, and maintaining a balance between review speed and depth. It also explores the potential role of AI in automating aspects of code review, while highlighting the need for human oversight and accountability. By integrating best practices, such as keeping pull requests manageable, fostering a culture of constructive feedback, and strategically using pair programming, teams can enhance their code review processes, thereby reducing delays and improving overall software quality.
Sep 03, 2025
2,961 words in the original blog post.
Mergify CI Insights has introduced support for Jenkins, allowing teams to gain comprehensive visibility into their CI/CD pipelines by transforming Jenkins from a black box into an insightful tool. By installing a single plugin, users can access dashboards that provide insights into flaky jobs, slow builds, rerun occurrences, and job costs in terms of engineering hours. This new feature addresses common issues Jenkins teams face, such as lack of clarity around why jobs fail or take longer than expected, by providing real-time detection and analysis without the need for YAML edits or custom dashboards. The integration aims to improve workflow efficiency, reduce merge delays, and enhance developer satisfaction by offering production-level observability tailored for Jenkins CI.
Sep 03, 2025
506 words in the original blog post.
Julien Danjou, CEO of Mergify, discusses the challenges and frustrations developers face with Continuous Integration (CI) systems, which are intended to expedite development but often become obstacles due to issues like unreliable tests and lack of observability. He highlights the emotional and productivity costs of dealing with CI failures, such as context-switching and wasted time, which erode trust and confidence in the system. Danjou notes that CI is often perceived as a black box, lacking the necessary visibility and insight into test flakiness and failure causes, leading to inefficiencies and frustration among development teams. In response, Mergify has developed CI Insights, a product designed to provide clarity by identifying flaky tests, understanding job failures, and automating retries to improve CI reliability and regain developer trust. The goal is to transform CI into a tool that developers view positively, enhancing its role as a facilitator of faster, more reliable software delivery.
Sep 02, 2025
831 words in the original blog post.