Understanding GitHub Pull Requests
Tags: beginners, opensource, github, tutorial
Published: 2023-10-16 06:00:00

## Contents
- [Introduction](#introduction)
- [Requirements](#requirements)
- [Overview](#overview)
- [Pull Requests](#pull-requests)
- [Navigating Request](#navigating-requests)
- [Conclusion](#conclusion)
- [Share Support](#share-support)

## Introduction
Hey there! I'm Francesco known as Airscript on the web.
Today we're gonna continue our focus on `GitHub Repositories` taking a look to `Pull Requests` tab.
Without any further ado, I think we can start.

## Requirements
You don't need any particular requirement to consult `pull requests` section on GitHub.
If you need a place to follow along this post, my chosen repository for today's blog post is [Beelzebub][beelzebub].

## Overview
I will start this post with a simple question: have you ever wondered how you can actually contribute to a software project?
Probably now in your mind you have something like: "Writing code, of course!"
That is totally right, but how? How do you represent and share that block of code that you wrote?
That is done by making a pull request!

## Pull Requests
So, let's deep dive on what is a `pull request` first.
As we have seen in the overview section, a pull request, for short `PR`, is actually a request for making a change inside a software.
Those changes are detected as additions and removals and usually they look like this:
![Pull Request Changes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9dgvtlnmr19p4d3fal0h.png)
> In green we see additions and in red removals.

Unlike `issues`, pull requests can have more than two states.
A pull request can be seen as open, closed and merged. In some cases also as draft.
Let's see what they mean:
- An `open` pull request means that a contributor just has expressed the willingness to contribute to a project, making some changes;
- A `closed` pull request means that the pull request has come to an end, without being merged inside the repository;
- A `merged` pull request means that our contribution has seen light and now it is part of the software project itself;
- A `draft` pull request means that it is not ready to be reviewed and merged.

As a last note, pull requests like issues can be labeled and added to milestones.
So, everything we told about those two entities in [this previous blog post][github-issues-blog-post] is totally right also for pull requests!

## Navigating Requests
Now that we are experts of what a pull request actually means, let's see where we can find them and how we can filter them out.
While over our selected GitHub repository, let's just take a look on the top left portion of our screen:
![Accessing Pull Requests](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jksbug8dsrq8w3gi2t1e.png)

As indicated inside the image above, we can simply select `Pull Requests` and jump inside this wonderful world:
![Pull Requests List](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/775k0383k1ynvjduzrt3.png)
> I've filtered out for closed ones since there were no open requests at the time of this blog post.

This is where all the pull requests lie. 
And just like issues themselves, we can use fast filters for searching whatever we are looking for in a rapid fashion as well as just searching for keywords inside the search bar!
![Pull Requests Fast Filters](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vuu7vl90h809r8kff188.png)

## Bonus
Now that you know what is a pull request and where you can find it, if you're looking for making your own first pull request just make sure to drop off my blog post on [how to make your first pull request][make-your-first-pull-request]!

## Conclusion
In today's blog post we have seen what is a pull request, how many states it can have and where we can find and filter them out in GitHub.
At this point with the knowledge acquired with this series, you are already able to create your own project, open issues and resolve them via pull request.
Be proud of yourself!

## Share Support
If you have liked this post, just leave a reaction and a comment in the section below.
To not lose any new post, just remember that you can follow me here on [dev.to][dev-to] and also other platforms that you can find on [airscript.it][airscript-it].
Thank you kindly!

[airscript-it]: https://airscript.it
[github]: https://github.com
[dev-to]: https://dev.to/airscript/
[beelzebub]: https://github.com/mariocandela/beelzebub
[github-issues-blog-post]: https://dev.to/airscript/no-more-problems-with-github-issues-20ne
[make-your-first-pull-request]: https://dev.to/airscript/making-your-first-pull-request-4ahc