Here, I express my hitherto educative, fun, and exciting experience as an Outreachy intern.

About the Project

The aim of the project is to provide a /graphql endpoint to Bodhi, Fedora’s update gating system. This would allow users to query through Bodhi’s resources using GraphQL.

Progress at a Glance

The task for the first week involved adding a /graphql endpoint that returns “Hello World” and tests to check that endpoint. Learning about requests, responses, and GraphQL was fun.

The second task was to enable users to query through the Releases using GraphQL. After installing the dependencies required, I had to do the following:

  • Configure the /graphql endpoint to use GraphiQL, a GraphQL IDE. (Quick trivia: it’s pronounced “graphical”)
  • Add Release class to the file that will contain all GraphQL schemas.
  • Add a Query class that would allow one to use graphene and SQLAlchemy to query through the Releases.
  • Finally, use the graphene.test.client module to assert if the response at the client’s end matches the correct one.

Challenges I Faced

There were challenges I faced while completing these tasks, mostly revolving around debugging and testing. After trying to figure out for hours why the GraphiQL IDE was returning null (when there exists data that is clearly not null), I asked my mentors regarding this. Turns out, it was because of an incorrect name of the resolver function.

Currently, I’m working on the client tests to match the responses. It’s quite thrilling to be working in an environment where there are many new, interesting things to be learnt. Plus, it’s a big bonus/motivation to be contributing to services used at Fedora. Special shout-out to my mentors cverna and scoady for being the best!