## Merge your Pull request @Hacktoberfest 2022

## 1. Hacktoberfest 2022

![4u3t0x3fd6ikuzkro5mh.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1664765388711/kduM3odDm.jpg align="left")

Hacktoberfest hosted by DigitalOcean. It is an open source festival celebrated during October every year, encouraging people worldwide to actively participate and contribute to participating open source projects hosted across GitHub and GitLab.

## 2. How to Register at Hacktoberfest 2022

- Create a valid account at [Github](https://github.com/)  or [gitlab](https://about.gitlab.com/)

![1820-gitlab_github.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767020850/ujgl5pA0T.jpg align="left")

- Go to the official website of [Hacktoberfest](https://hacktoberfest.com/) and register via your github or gitlab account

![reg.PNG](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767050148/Mchfng3wR.PNG align="left")

![rgtret.PNG](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767067540/p2yRIg7V4.PNG align="left")


- Finally start your journey 🚀

<iframe src="https://giphy.com/embed/3lvqNXheb679S" width="480" height="296" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/robert-downey-jr-iron-man-eyes-3lvqNXheb679S"></a></p>


## 3. Steps to Merge a PR


![slide_62.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767170462/2PYa2qz3k.jpg align="left")


- Search for Hacktoberfest label issues in github if the issue is not already assign to other 

- Request the project maintainer to assign on the particular issue

- Fork the repo with your github account

- Work on that issue in your local system

- Finally merge your code by make a pull request


## 4. Ruls of Hacktoberfest 2022

![tiny-business-people-reading-list-rules-man-woman-making-checklist-control-companys-management-huge-clipboard-flat-vector-illustration-guidance-concept_74855-23189.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767256056/LWJXRuLY-.jpg align="left")

- You must have submit overall 4 PR only

- Your pr/mrs must be within the bounds of hacktoberfest.

- Repos that go against hacktoberfest’s values will be excluded from qualification and pr/mrs made to those repos won’t count.

- Your pr/mrs must be in a repo tagged with the “hacktoberfest” topic, or be labeled “hacktoberfest-accepted.”

- Your pr/mrs must not be labeled as “invalid”.

- Your pr/mrs must be merged, have the “hacktoberfest-accepted” label, or have an overall approving review.

- Once your pr/mrs pass all the checks above, it will be accepted for hacktoberfest after the 7-day review period.



## 5. Friendly reminder


![1520157790043.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1664767194294/KMspqI5ZC.jpg align="left")

- your pr/mrs must not be spammy.

- spammy pull/merge requests will be labeled as “spam.”

- pull/merge requests must be approved by a maintainer.

- bad repositories will be excluded.

- avoid submitting low-quality pull/merge requests.


## 6. Resources 📚

 https://lovelacecoding.hashnode.dev/how-to-create-a-pull-request-with-github-desktop 🚩

 https://github.com/  🚩

 https://about.gitlab.com/  🚩

 https://hacktoberfest.com/  🚩




That's all for this blog, I hope you will learn something new. And feel free to share your thoughts and feedback, Thanks for reading.

Feel free to reach out me 👀

[Twitter](https://twitter.com/ADITYA90546170) 🖱

[LinkedIn](https://www.linkedin.com/in/aditya-das-7b2276202) 🖱

[Github](https://github.com/ADITYADAS1999) 🖱




