def create_or_update_repository_details(self, repository_dict, repository = None): if repository is None: repository = Repository() extra_data = {} for key, value in repository_dict.iteritems(): if key == "_attrs": continue if key == 'owner' or key == "organization": try: setattr(repository, key, value.login) continue except Exception: pass if key == 'source' or key == "parent": try: setattr(repository, key, value.full_name) continue except Exception: pass if key in ['owner', 'name', 'html_url', 'homepage', 'language','description','watchers','created_at','pushed_at','private']: setattr(repository, key, value) else: if isinstance(value, datetime): extra_data[key] = value.__str__() else: extra_data[key] = value repository.extra_data = json.dumps(extra_data) if repository.language == "" or repository.language == None: repository.language = "other" repository.scm = 'git' repository.host =self.host repository.language = repository.language.lower() return repository