code: public SystemHook addSystemHook(String url, String token, Boolean pushEvents,
              Boolean tagPushEvents,  Boolean enablSsslVerification) throws GitLabApiException {
  
          if (url == null) {
              throw new RuntimeException("url cannot be null");
          }
  
          GitLabApiForm formData = new GitLabApiForm()
                  .withParam("url", url, true)
                  .withParam("token", token)
                  .withParam("push_events", pushEvents)
                  .withParam("tag_push_events", tagPushEvents)
                  .withParam("enable_ssl_verification", enablSsslVerification);
          Response response = post(Response.Status.CREATED, formData, "hooks");
          return (response.readEntity(SystemHook.class));
      }
docs: Add a new system hook. This method requires admin access.
  
  <pre><code>GitLab Endpoint: POST /hooks</code></pre>
  
  @param url the hook URL, required
  @param token secret token to validate received payloads, optional
  @param pushEvents when true, the hook will fire on push events, optional
  @param tagPushEvents when true, the hook will fire on new tags being pushed, optional
  @param enablSsslVerification do SSL verification when triggering the hook, optional
  @return an SystemHookEvent instance with info on the added system hook
  @throws GitLabApiException if any exception occurs