code: func (s *ProjectService) ListWithOptions(options *GetQueryOptions) (*ProjectList, *Response, error) {
  	apiEndpoint := "rest/api/2/project"
  	req, err := s.client.NewRequest("GET", apiEndpoint, nil)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	if options != nil {
  		q, err := query.Values(options)
  		if err != nil {
  			return nil, nil, err
  		}
  		req.URL.RawQuery = q.Encode()
  	}
  
  	projectList := new(ProjectList)
  	resp, err := s.client.Do(req, projectList)
  	if err != nil {
  		jerr := NewJiraError(resp, err)
  		return nil, resp, jerr
  	}
  
  	return projectList, resp, nil
  }
docs: // ListWithOptions gets all projects form JIRA with optional query params, like &GetQueryOptions{Expand: "issueTypes"} to get
  // a list of all projects and their supported issuetypes
  //
  // JIRA API docs: https://docs.atlassian.com/jira/REST/latest/#api/2/project-getAllProjects