docs: Form userToForm(User user, Integer projectsLimit, CharSequence password, Boolean resetPassword, boolean create) {
  
          if (create) {
              if ((password == null || password.toString().trim().isEmpty()) && !resetPassword) {
                  throw new IllegalArgumentException("either password or reset_password must be set");
              }
          }
  
          projectsLimit = (projectsLimit == null) ? user.getProjectsLimit() : projectsLimit;
          String skipConfirmationFeildName = create ? "skip_confirmation" : "skip_reconfirmation";
  
          return (new GitLabApiForm()
                  .withParam("email", user.getEmail(), create)
                  .withParam("password", password, false)
                  .withParam("reset_password", resetPassword, false)
                  .withParam("username", user.getUsername(), create)
                  .withParam("name", user.getName(), create)
                  .withParam("skype", user.getSkype(), false)
                  .withParam("linkedin", user.getLinkedin(), false)
                  .withParam("twitter", user.getTwitter(), false)
                  .withParam("website_url", user.getWebsiteUrl(), false)
                  .withParam("organization", user.getOrganization(), false)
                  .withParam("projects_limit", projectsLimit, false)
                  .withParam("extern_uid", user.getExternUid(), false)
                  .withParam("provider", user.getProvider(), false)
                  .withParam("bio", user.getBio(), false)
                  .withParam("location", user.getLocation(), false)
                  .withParam("admin", user.getIsAdmin(), false)
                  .withParam("can_create_group", user.getCanCreateGroup(), false)
                  .withParam(skipConfirmationFeildName, user.getSkipConfirmation(), false)
                  .withParam("external", user.getExternal(), false)
                  .withParam("shared_runners_minutes_limit", user.getSharedRunnersMinutesLimit(), false));
      }