code: def create_data(self, extra=None):
          r
          if self._data:
              return self._data
  
          self._data = {'source_files': self.get_coverage()}
          self._data.update(git_info())
          self._data.update(self.config)
          if extra:
              if 'source_files' in extra:
                  self._data['source_files'].extend(extra['source_files'])
              else:
                  log.warning('No data to be merged; does the json file contain '
                              '"source_files" data?')
  
          return self._data
docs: r"""
          Generate object for api.
  
          Example json:
              {
                  "service_job_id": "1234567890",
                  "service_name": "travis-ci",
                  "source_files": [
                      {
                          "name": "example.py",
                          "source": "def four\n  4\nend",
                          "coverage": [null, 1, null]
                      },
                      {
                          "name": "two.py",
                          "source": "def seven\n  eight\n  nine\nend",
                          "coverage": [null, 1, 0, null]
                      }
                  ],
                  "parallel": True
              }