anchor.diff:  -spec repos(credentials(), string()) -> result().
   repos(Cred, User) ->
       UserStr = elvis_utils:to_str(User),
  -    Url = make_url(repos, UserStr),
  -    case auth_req(Cred, Url) of
  -        {ok, Result} ->
  -            JsonResult = jiffy:decode(Result, [return_maps]),
  -            {ok, JsonResult};
  -        {error, Reason} ->
  -            throw(Reason)
  -    end.
  +    Url = make_url(repos, {UserStr}),
  +    case auth_req(Cred, Url) of
  +        {ok, Result} ->
  +            JsonResult = jiffy:decode(Result, [return_maps]),
  +            {ok, JsonResult};
  +        {error, Reason} ->
  +            throw(Reason)
  +    end.
  +
  +-spec hooks(credentials(), repository()) -> result().
  +hooks(Cred, Repo) ->
  +    Url = make_url(hooks, {Repo}),
  +    case auth_req(Cred, Url) of
  +        {ok, Result} ->
  +            JsonResult = jiffy:decode(Result, [return_maps]),
  +            {ok, JsonResult};
  +        {error, Reason} ->
  +            throw(Reason)
  +    end.
  +
  +-spec create_webhook(credentials(), repository(), string(), [string()]) -> result().
  +create_webhook(Cred, Repo, WebhookUrl, Events) ->
  +    Url = make_url(hooks, {Repo}),
  +    BinEvents = [list_to_binary(E) || E <- Events],
  +    Data = #{<<"name">> => <<"web">>,
  +             <<"active">> => true,
  +             <<"events">> => BinEvents,
  +             <<"config">> => #{<<"url">> => list_to_binary(WebhookUrl),
  +                               <<"content_type">> => <<"json">>}},
  +    Body = jiffy:encode(Data),
  +    case auth_req(Cred, Url, post, Body) of
  +        {ok, Result} ->
  +            JsonResult = jiffy:decode(Result, [return_maps]),
  +            {ok, JsonResult};
  +        {error, Reason} ->
  +            throw(Reason)
  +    end.
  +
  +-spec add_collaborator(credentials(), repository(), string()) -> result().
  +add_collaborator(Cred, Repo, Collaborator) ->
  +    Url = make_url(collaborators, {Repo, Collaborator}),
  +    Body = [],
  +    case auth_req(Cred, Url, put, Body) of
  +        {ok, Result} ->
  +            JsonResult = jiffy:decode(Result, [return_maps]),
  +            {ok, JsonResult};
  +        {error, Reason} ->
  +            throw(Reason)
  +    end.
  +
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% Private Functions
  
positive.code:          pull_req_comment_line/7,
           pull_req_comments/3,
           user/1,
           repos/2
          ]).
  
  %% Files
  
negative.code: make_url(user, {}) ->
      Url = ?GITHUB_API ++ "/user",
      io_lib:format(Url, []);
  make_url(repos, {User}) ->
      Url = ?GITHUB_API ++ "/users/~s/repos",
      io_lib:format(Url, [User]);
  make_url(hooks, {Repo}) ->
      Url = ?GITHUB_API ++ "/repos/~s/hooks",
      io_lib:format(Url, [Repo]);
  make_url(collaborators, {Repo, Username}) ->
      Url = ?GITHUB_API ++ "/repos/~s/collaborators/~s",
      io_lib:format(Url, [Repo, Username]).
  
  -spec auth_req(credentials(), string()) -> string() | {error, term()}.
  auth_req(Credentials, Url) ->
  