def spider_repos(): gh = Github(settings.GITHUB_TOKEN) for repo in gh.get_organization('ministryofjustice').get_repos(): try: r = Repository.objects.get(name=repo.name) except Repository.DoesNotExist: r = Repository() r.name = repo.name r.created = set_timezone(repo.created_at) r.description = repo.description r.url = repo.html_url r.updated = set_timezone(repo.updated_at) r.private = repo.private r.contributors = repo.get_contributors().totalCount or 0 r.save() print '\nSaving', r.name r.add_language_usages(repo.get_languages()) record_gem_dependencies(repo, r) r.has_tests = check_for_tests(repo, r) r.save()
def get_repos(self, org): try: repos = self.gh.repos.list_by_org(org.username).all() for repo in repos: if not repo.fork: r = Repository.query.filter_by(gh_id=repo.id).first() if r is None: r = Repository() r.organization = org r.gh_id = repo.id r.name = repo.name r.description = repo.description r.forks = repo.forks r.watchers = repo.watchers r.size = repo.size r.open_issues = repo.open_issues db.session.add(r) db.session.commit() except: print 'error ' + org.name