Create Gitlab PR Template
Tags: git, webdev, productivity, beginners
Published: 2022-02-08 03:51:50

For any company projects or gitlab repository we need to make sure all the processes to contribute should be standardized. So, Maintaining a proper pull request standard is an important way. It will save time, energy for you and your team members. 
It also helps new team members be able to show the standard and easily onboard themselves to the team.
The best part of creating a Pull Request (Merge Request) template in Gitlab is we can update it anytime and it can be configured in just 5 steps.

**Steps to create a PR template in Gitlab:**

1.**Create a folder `.gitlab/merge_request_templates` in your project root:**
Navigate to your project root and create a folder name as `.gitlab` then we also need to add another folder inside the `.gitlab` as `merge_request_templates`.

![gitlab PR template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oikwq9s2osyjui31e7lo.png)
 

_NOTE:  We need to create a `.md` file and name of the file should be same name of the template you want it to appear in your gitlab repository which we will see visually in the step yet to come._

We can see that I have created a file name called `default.md ` because I want to have a template name as **default**.

2.**Update default.md:**
  Now, let's update the content inside the `default.md` as below.

 ```
  ## Trello Card Link:

  - Link of a Trello card (we use [Trello] 
    (https://trello.com) for Project Management)  which was assigned for completing the feature.


 ## Tasks Done: (list of tasks completed)

  - What did you complete in this PR? Mention a list of them (we will see it in an example in upcoming steps below on how it is done in a real project)

 ## Tasks Remaining: (List of tasks remaining to be 
    implemented)

 - What is remaining to be implemented in this PR? Mention a 
   list of them 

 ## Steps to test feature:
 - How can we test the feature we implemented in this PR? You 
  could mentioned steps to test it.

 ## Screenshots:
 
  (if your changes has any UI updates, include screenshot of 
  the changes)

 ```

 As I want my fellow developers to add [trello](https://trello.com) card link assigned to them, add what they have completed, remaining, how can we test it and screenshots if possible.
  This is the template format we use in [Truemark Technology](https://www.truemark.dev/)  which helps the the person who is reviewing the PR know what feature they should be reviewing, link to feature description if they have any confusions and what feature is implement in this PR.

3.**Commit and push:**
  Let's commit the code and push the change to our default branch which in our case is `develop`.

 ```
 > git add .
 > git commit -m "create new template"
 create new template
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 .gitlab/merge_request_templates/default.md
> git push origin develop
  Enumerating objects: 6, done.
  Counting objects: 100% (6/6), done.
  Delta compression using up to 8 threads
  Compressing objects: 100% (3/3), done.
  Writing objects: 100% (5/5), 384 bytes | 384.00 KiB/s, done.
  Total 5 (delta 1), reused 0 (delta 0), pack-reused 0
  remote: 
  remote: To create a merge request for develop, visit:
  remote: https://gitlab.com/sushilsubedi151/template- 
          react/-/merge_requests/new? 
          merge_request%5Bsource_branch%5D=develop
remote: 
To gitlab.com:sushilsubedi151/template-react.git
```

4.**Create a new branch to verify new template:**
Let's follow below steps to verify new template:
- Checkout to a branch called `check-template` with
```
 git checkout -b check-template
```
- Create a dummy file called `test.txt` and add some content to it with 

```
echo "This is a test content for checking my new PR template in Gitlab" >> test.txt
```
- Add new changes with `git add .` and commit those changes with 
```
git commit -m "Added test.txt to test PR template in Gitlab"
```
- Push your changes with 
```
git push origin check-template
```

5.**Create a merge request:**
  In this step we will breakdown the process into two smaller steps:
- **Choose a template:**.               
   Let's create a merge request and set the target branch to `develop` branch. 

_Note: Make sure we have set default branch as develop._

To set the default branch from **master** to **develop**, we need to follow below steps:
![select repository from settings](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57oazp2ceks7y3ojs0o6.png)
 
- Let's select **Repository** from **Settings** as shown above.
![select the develop as default branch](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi9jed8esxv6z3sl7p9i.png)
 
 
- Now, Let's select **develop** from the list of branches and click on **Save Changes**.
 
We need to create a merge request by selecting `Merge Requests` and click on `New Merge Request`.After, that we need select from the template list.

![pr template list](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t958mswtvfem1dc648xf.png)

As we can see, **default** as our template name.

- **Edit the template:**
  In this step, we will be update the selected template.
![update the pr template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ood2mac56mspent32ib8.png)
 
In my case, I have just updated the content of test.so, I have remove **Steps to test feature**, **Screenshots** and updated Task completed and remaining task. After this click over `Create Merge Request`. 
![create a PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mfacxhu855v1cnu2iiwm.png)
✅ we have successfully create a merge request using our template.🎉🎉🎉

**Conclusion:**
 I hope this article help to create a standard format for your team. Thank you so much for reading my blog! I really appreciate it!👏