whole_func_string: function ghIssueStats(repository, options) {
      options = merge({
          // GitHub API URL, you may change to point to a GitHub enterprise instance
          apiUrl: 'https://api.github.com',
          // Array of API tokens to be used by `token-dealer`
          tokens: null,
          // The concurrency in which pages are requested
          concurrency: 5,
          // Custom options to be passed to `got`
          got: {
              timeout: 15000,
              headers: { accept: 'application/vnd.github.v3+json' },
          },
          // Custom options to be passed to `token-dealer`
          tokenDealer: { group: 'github' },
      }, options);
  
      const stats = generateEmptyStats();
      const issuesUrl = url.resolve(options.apiUrl, `repos/${repository}/issues?state=all&per_page=100`);
  
      // Fetch first page
      return doRequest(issuesUrl, options)
      .then((response) => {
          parsePage(response.body, stats);
  
          // Fetch the remaining pages concurrently
          const remainingPages = getPagesAsArray(response.headers.link).slice(1);
          const actions = remainingPages.map((page) => () =>
              doRequest(`${issuesUrl}&page=${page}`, options)
              .then((response) => parsePage(response.body, stats))
          );
  
          return pAll(actions, { concurrency: options.concurrency });
      })
      .then(() => stats);
  }
func_code_string: function ghIssueStats(repository, options) {
      options = merge({
          // GitHub API URL, you may change to point to a GitHub enterprise instance
          apiUrl: 'https://api.github.com',
          // Array of API tokens to be used by `token-dealer`
          tokens: null,
          // The concurrency in which pages are requested
          concurrency: 5,
          // Custom options to be passed to `got`
          got: {
              timeout: 15000,
              headers: { accept: 'application/vnd.github.v3+json' },
          },
          // Custom options to be passed to `token-dealer`
          tokenDealer: { group: 'github' },
      }, options);
  
      const stats = generateEmptyStats();
      const issuesUrl = url.resolve(options.apiUrl, `repos/${repository}/issues?state=all&per_page=100`);
  
      // Fetch first page
      return doRequest(issuesUrl, options)
      .then((response) => {
          parsePage(response.body, stats);
  
          // Fetch the remaining pages concurrently
          const remainingPages = getPagesAsArray(response.headers.link).slice(1);
          const actions = remainingPages.map((page) => () =>
              doRequest(`${issuesUrl}&page=${page}`, options)
              .then((response) => parsePage(response.body, stats))
          );
  
          return pAll(actions, { concurrency: options.concurrency });
      })
      .then(() => stats);
  }
func_documentation_string: -------------------------------------------------