Port jsgit to dart

@devoncarew  PTAL thanks