Source

ocaml-bitbucket / api.ml

Diff from to
   (* https://api.bitbucket.org/1.0/repositories/{accountname}/{repo_slug}/branches *)
   module Branches = struct
 
+    type file = {
+      type_ as "type" : string;
+      file : string;
+    } with conv(json), sexp
+
     type branch = {
+      node : string;
+      raw_node : string;
+      author : string;
+      raw_author : string;
+      utctimestamp : UTCTime.t;
+      timestamp : LocalTime.t;
+      message : string;
+      files : file list;
+      size : int64;
+      revision : int64;
+      parents : string list;
+      branch : string;
       unknown : Json.t mc_leftovers;
     } with conv(json), sexp
 
     type t = branch mc_fields with conv(json), sexp
 
     let get ~accountname ~repo_slug = 
-      let s = Curl.get_string (fun h ->
+      Format.eprintf "%s : %s...@." accountname repo_slug;
+      let code, s  = Curl.get_string (fun h ->
+        (* ~user ~password  *)
+        (* h#set_userpwd (Printf.sprintf "%s:%s" user password)) *)
         h#set_url (sprintf "https://api.bitbucket.org/1.0/repositories/%s/%s/branches" accountname repo_slug);
         (* h#set_userpwd (Printf.sprintf "%s:%s" user password) *))
       in
       try t_of_json_exn (Json.parse s) with e -> 
         prerr_endline (Printexc.to_string e);
-        prerr_endline s;
+        Format.eprintf "%d: %S@." code s;
         raise e
       
   end
   } with conv(json), sexp
 
   let get ~user ~password = 
-    let s = Curl.get_string (fun h ->
+    let _code, s = Curl.get_string (fun h ->
       h#set_url "https://api.bitbucket.org/1.0/user";
       h#set_userpwd (Printf.sprintf "%s:%s" user password))
     in
     and resp = repo list with conv(json)
 
     let get ~user ~password = 
-      resp_of_json (Json.parse (Curl.get_string (fun h ->
+      let _code, s = Curl.get_string (fun h ->
         h#set_url "https://api.bitbucket.org/1.0/user/repositories/";
-        h#set_userpwd (Printf.sprintf "%s:%s" user password))))
+        h#set_userpwd (Printf.sprintf "%s:%s" user password))
+      in
+      resp_of_json (Json.parse s)
   end
 
 end