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()
示例#2
0
 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