[Part 1]My GSOC 2020 journey with Packit (Fedora)

Coding period started last week, and it has been as incredible as I imagined. With great team and help from mentors it has been an incredible experience till date.

“It is good to have an end to journey toward; but it is the journey that matters, in the end.”
Ursula K. Le Guin

This blog is going to be a simple and short one. (No ones got time to read for more then 5 mins🤪)

Hi, I am Shreyas😜 I am thrilled to have been selected in Google Summer of Code 2020 to work on implementing support for GitLab in Packit-Service, under Fedora. This will (tentatively) be an 3-part blog series.

What is Packit?

Packit provides tooling and automation to integrate upstream open source projects into Fedora operating system. blah blah blah You can find the information about Packit here.

Short answer to what’s Packit?

Packit-as-a-Service ensure different software projects continue to build and function fine on Fedora.

My part?

To make Packit service work with Gitlab, as a GitLab service. Currently, Packit service is available only for GitHub. Many projects using Gitlab will be able to test their builds using Packit services after integrating Packit with GitLab. Not only gitlab.com but all the other gitlab instances as well as Packit-Service will be all to handle all the gitlab events made by webhook. The task will be performed by handling all the GitLab requests in the Packit service repository. Any project on gitlab will be able to use Packit-service to test their build and ensure if it's working fine on Fedora.

Current work?

Before I start writing about my codebase, the project required a lot of research some of it is still left to do. So what’s the research about? As having to support GitLab in packit-service we need to figure out how e are goiung to do the interactions and how the app flow will be. Will it be an Gitlab App just as a GitHub App? Well no Github and Gitlab have a different workflow but with lot of similarities so we can reuse the already available GitHub code and have some specific cases for Gitlab that’s different.

My current research of Gitlab integration, it’s a bit messy but here it is https://github.com/shreyaspapi/research/blob/master/gitlab_integration/README.md

With that done I have started working on the handling the gitlab events inside packit-service repository, it all begins with the first PR(Pull Request) Listen to gitlab hook and parsing events and second✌️ Parsing more events of gitlab

What does this do?

Now Packit-Service can listen to the events made by GitLab projects and act on it accordingly.

Hurdles?

GSoC’s just a hurdle race where time is your opponent. There are always some here and there hat matters is how you solve them, One way of it could be by asking lot’s of question while to get familiar with it and thank you Frantisek Lachman for answering all the stupid question I had about the project and implementation.

Docker

Well docker was one of my enemy I had no idea about docker’s working I only knew that it could make containers. I have learned a lot in just 2 weeks and thanks to Anchit Bajaj😉 I know about docker too.

Running Tests

In my first week of starting I had lots of issues while running tests mainly the test_requre the first time. This is my first time that I had written any tests, and Packit handles it in realllllly simple way. Again had a lot of help from all the team members form Packit-Service.

Exams

Yeah! 😩 With the start GSoC my university decided to have all the remaining end term tests (Labs, Written tests, Viva, Project Evaluation, Assignment submission, Survey Papers…..) online. Past week I have been a little slow over things but wont matter much as still I am not lagging on the timeline and things are looking good.

Hope this was a good read, drop by in the comments if you have something to say! There will be more to this series. 😊

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store