<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_data(self, extra=None):
 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 } """

        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