Skip to content

Instantly share code, notes, and snippets.

@aksareen
Last active August 22, 2017 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aksareen/1546b0028a2a486650ea609849c65b95 to your computer and use it in GitHub Desktop.
Save aksareen/1546b0028a2a486650ea609849c65b95 to your computer and use it in GitHub Desktop.
Google Summer of Code 2017 - Ashish Sareen Project Roster

This document contains the roster of the work done by Ashish Sareen during Google Summer of Code 2017 for Mozilla.

The project was successfully completed and its results were successfully deployed to the Balrog's production instance. It has resulted in migrating all the Balrog's admin API to a machine-readable yaml specification files which can be used to describe, produce, consume, and visualize RESTful Web service's APIs. Also, during the migration inconsistencies in the code (both UI and backend) and previously unknown bugs were encountered and fixed too.

Here's the associated bug on Bugzilla - 1336452.

Here's the link to publicly hosted swagger document for visualizing the Balrog's newly migrated admin APIs.

Here's the link to my blog where I discuss in detail about the project and some of problems I encountered with their solutions.

Note: During the coding period, swaggerhub updated their swagger-ui vendor which throws a semantic error if 'type' is listed as an array of multiple data types (ex: [string, int]) instead of a single basic data type. However, this doesn't cause any issues in connexion's swagger parser as JSON schema draftv4 permits this. To visualize and test the APIs locally, interested parties can fork and download the older version of swagger editor to easily generate the curl requests to interact with the APIs.

Here's the complete list of PRs that were merged by me during the GSoC'17.

Below is the detailed list of Pull Requests that incrementally migrated each group of APIs to the swagger specification:

  • Migrating Rules, Users and CSRF token groups of APIs. PR #312.
  • Migrating Remaining sub-groups of Rules and User APIs. PR #317.
  • Migrating Specific Users View plus Release History Diffs and Views APIs. PR #323.
  • Migrating Release APIs. PR #336.
  • Explicity Typecasting all 'data_version' query arguments into integer. PR #339.
  • Migrating Required Signoffs APIs. PR #342.
  • Abstracting 'count' field to a separate model. PR #345.
  • Migrating first group of Scheduled Changes APIs. PR #355.
  • Replacing request.json with request.get_json() to stop deprecation warnings in logs. PR #362.
  • Migrating second group of Scheduled Changes APIs. PR #368.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment