Overview

The main achievement of the project is Code Review extension, or view on Github.com, which fulfils the project requirements.

Additionally, there are a few side projects:

Code Review extension

A new code review request can be created in IDE page:

Dialog to create a new code review request

Code Review extensions adds 2 new pages (open MegaMenu to see this), Review Dashboard and Code Review:

2 new pages in Mega Menu

Review Dashboard page lists all code reviews the user is involved in (author or reviewer):

Code Review Dashboard page

Code Review page is dedicated for working on a selected code review request

Code Review page

Left column of Code Review page displays the review details:

Left column displays the review details

Right column of Code Review page displays:

Right column displays a list of available comment threads and select comment thread

Center column of Code Review page displays the diffs of changed files:

Center column displays the diff

View Code Review extension on Github.com

Notification extension

The extension provides a very simple facebook-like notification service. The implementation is really very basic: no message types, no aggregation of messages. Just a list of notifications, new ones are marked as unseen; after the notification is shown it is marked as seen, but yet remains in the list. It is possible to clear the notification list.

Folded notification bar

Unfolded notification bar

View Notification extension on Github.com

Git extension

The extension consists of 2 parts: 1. back-end running on server side and responsible for:

  1. front-end running on client side:

In addition to its main goal, which is to provide git service in the application, the git extensions registers a submenu in IDE page:

Git submenu in IDE page

View GIT extension on Github.com

Git Rest API

The aim of the project is to provide a restful Git API that mimics as most as possible the old good git.

For example, in order to commit a change in shell you should do:

$ mkdir new-project
$ cd new-project
$ git init
$ git add file.c
$ git commit -m 'A commit message'
$ git add file.c
$ git commit -m 'A second commit message'
$ git show HEAD~:file.c

In case of git-rest-api you should do:

POST /init
  { "repo": "new-project" }
POST /repo/new-project/tree/file.c
POST /repo/new-project/commit
  { "message": "A commit message" }
POST /repo/new-project/tree/file.c
POST /repo/new-project/commit
  { "message": "A second commit message" }
GET  /repo/new-project/show/file.c?rev=HEAD~

View Git Rest API on Github.com