Technical

Experienced software engineer, you have a good technical background and you want to move on, these articles are for you.

Mehdi Abaakouk

Managing data retrieval in React

Consuming API in React sounds straightforward. Fetching data can be resumed by using the `fetch` function and getting back the value. Using this simple approach would be fine if everything always worked as intended. However, fetching data is way more than retrieving some value. You have to deal with unexpected

Julien Danjou

(Un)signed commits: how we found a (non) security bug in GitHub

When you build an entire software around someone else API, you tend to know everything about it. We made Mergify [https://mergify.io] on top of GitHub API, and it's hard to describe how well we understand its API. From its fabulous and beloved features to its most

Julien Danjou

Pull Request vs. Merge Request: What's the Difference?

One of the most well-known and often-used git tools, the pull request is often also referred to as a merge request. These git-based requests are often utilized to promote cooperation and collaboration between software team members. They’re normally a required feature used by mid-sized or large teams. But what’

Julien Danjou

How Mergify Can Help With GitHub Pull Request Automation

A pull request [https://blog.mergify.com/what-is-a-pull-request/] allows a contributor to a project to experiment with new code changes without affecting the main project, then submit those changes for review. Managing pull requests can be time-consuming. You have to assign people to review code (or do it yourself), rebase

Julien Danjou

Cycle detection in PostgreSQL

A few months ago, we decided to build a referral program for Mergify [https://mergify.io]. This is a well-known, classical way of bringing more people on your product. To build this program, we add to define a data model that allowed us to store a list of referrers and

Julien Danjou

Debugging Dependabot nonworking Security Updates

Running a project requires good security practice and management. Handling the security of software passes through holding the safety of its dependencies. GitHub's answers to that have been to provide a service named Dependabot [https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates] that sends security updates to your

Mehdi Abaakouk

Converting a Python application to asyncio

As you may know, the Mergify engine is written in Python. To execute its vast number of asynchronous tasks, it was leveraging Celery, a framework providing task queues. While Celery is a prominent framework, it was not suited anymore for Mergify growth. In 2020, we decided to replace Celery with

Julien Danjou

How to serve static files from GitHub

Like many developers out there, you might use GitHub to store your source code. When you're building something pretty simple like a Web application, HTML files, JavaScript code, CSS stylesheets, etc., it could be useful to directly distribute your file through HTTP. The Naive Approach You probably tried

Julien Danjou

Batching queries with GraphQL

GraphQL has seen a booming growth over the last years. A large number of API providers are switching to this new paradigm of querying data on the Web. At Mergify [https://mergify.io], we’re no exception. To implement our automation engine, we’re heavy users of the GitHub API

Julien Danjou

Managing your GitHub pull request from the command line

At Mergify, we love providing the best tools for developers. Like many software engineers out there, we leverage GitHub to collaborate. After all, that’s how we started this! The GitHub pull request model is nice, but usually requires a lot of manual steps: 1. Forking the repository by clicking

Julien Danjou

Case Study: CPython Development Workflow

It’s no secret that Mergify is written in Python [https://python.org]. Our engine is open source [https://github.com/mergifyio] and is free for anyone to contribute to. That’s how we roll. We’ve been doing Python for a long time, and that got us close to