anchor.diff:  							{hash, [struct, "after"]},
   							[struct, "compare"]
   						]),
  -					CommitList = traverse_json(JSON, [struct, "commits", struct]),
  +					CommitList = traverse_json(JSON, [struct, "commits", array]),
   					ShowList = lists:sublist(CommitList, 3),
  -					Repo = traverse_json(JSON, [struct, "repository", struct, "name"]),
  -					Branch = traverse_json(JSON, {ref, [struct, "ref"]}),
  +					RepoBranch = create_message(JSON, "~s:~s", [
  +							{reponame, [struct, "repository"]},
  +							{ref, [struct, "ref"]}
  +						]),
   					ShowMsgs = lists:map(fun(MJSON) ->
  -						create_message(MJSON, "~s/~s ~s ~s", [
  -							{Repo},
  -							{Branch},
  +						create_message(MJSON, "[~s] ~s ~s: ~s", [
  +							{RepoBranch},
  +							{hash, [struct, "id"]},
   							[struct, "author", struct, "username"],
  -							[struct, "message"]
  +							{trunc_newline, [struct, "message"]}
   						]) end, ShowList),
   					[PushMsg | ShowMsgs];
   				[error, error, error] -> [];
  
positive.code: 						])];
  				[false, true, _] ->
  					[create_message(JSON, "[~s] ~s deleted ~s at ~s", [
  							[struct, "repository", struct, "name"],
  							[struct, "sender", struct, "login"],
  							{ref, [struct, "ref"]},
  							{hash, [struct, "before"]}
  
negative.code: create_message(JSON, String, FormatJsonPaths) ->
  	io_lib:format(String, lists:map(fun
  			({T}) -> T;
  			({hash,T}) -> lists:sublist(8, traverse_json(JSON, T));
  			({length,T}) -> length(traverse_json(JSON, T));
  			({ref,T}) ->
  				case traverse_json(JSON, T) of
  					"refs/heads/" ++ Branch -> Branch;
  					X -> X
  				end;
  			({trunc_newline,T}) ->
  				case traverse_json(JSON, T) of
  					error -> error;
  					Lst -> lists:takewhile(fun(X) -> X /= 10 end, Lst)
  				end;
  			({reponame, RepoStruct}) ->
  				case traverse_json(JSON, RepoStruct ++ [struct, "fork"]) of
  					false -> traverse_json(JSON, RepoStruct ++ [struct, "name"]);
  					_ -> traverse_json(JSON, RepoStruct ++ [struct, "full_name"])
  				end;
  			(T) -> traverse_json(JSON, T)
  		end, FormatJsonPaths)).
  