Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
def create_repository():
    repository = Repository(
        name="TestRepository",
        manager="DSpace",
        endpoint="http://dstools.hpsrepository.asu.edu/rest/")
    repository.save()
    return repository
def create_repository(*args):
    user = flask_login.current_user
    form = NewRepoForm()
    if form.validate_on_submit():
        repo = Repository(name=form.name.data, )
        repo.save()
        user.owned_repositories.connect(repo)
        return redirect(url_for("index"))
    return render_template("repo_create.html", form=form)
Ejemplo n.º 4
0
def issues_repos(request, boardid):
    boards = Board.objects.filter(pk=boardid)
    if len(boards) == 0:
        ret = HttpResponseRedirect('/issueview/board/show/')
        add_never_cache_headers(ret)
        return ret

    if boards[0].user != request.user and len(
            ReadPermissions.objects.filter(
                username=request.user.username).filter(board=boards[0])) == 0:
        ret = HttpResponseRedirect("/issueview/board/show/")
        add_never_cache_headers(ret)
        return ret

    board = boards[0].board

    if request.method == "GET":
        filtstring = request.GET.get("filter", "")
        repos = Repository.objects.filter(board=boards[0])
        form = Repoform()
        ret = render(
            request, "issueview/repos.html", {
                "board": boards[0],
                "form": form,
                "repos": repos,
                "filtstring": filtstring
            })
        add_never_cache_headers(ret)
        return ret
    form = Repoform(request.POST)
    filtstring = request.POST.get("filter", "")
    if form.is_valid():
        newrepo = Repository()
        newrepo.repository = form.cleaned_data["repository"]
        newrepo.board = boards[0]
        newrepo.save()
        form = Repoform()
    repos = Repository.objects.filter(board=boards[0])
    ret = render(request, "issueview/repos.html", {
        "board": boards[0],
        "form": form,
        "repos": repos,
        "filtstring": filtstring
    })
    add_never_cache_headers(ret)
    return ret
Ejemplo n.º 5
0
def create_repository_and_owner(repository, name, email):
    if email == "None":
        q = User.gql("WHERE name = :1", name)
    else:
        q = User.gql("WHERE email = :1", email)
    u = q.get()
    if u is None:
        u = User(name=name, email=email)
        u.save()
    q = Repository.gql("WHERE name = :1 AND owner = :2", repository, u)
    r = q.get()
    if r is None:
        r = Repository(name=repository, owner=u)
        r.save()
    queue = get_github_queue()
    task = taskqueue.Task(url="/hooks/worker/authors/",
            params={'repo': r.key()})
    queue.add(task)
    return r, u
Ejemplo n.º 6
0
class TestGetJARS(unittest.TestCase):
	def setUp(self):
		self.repository = Repository(
			name='TestRepository',
			manager='JARS',
			endpoint='http://localhost:8002',
		)
		self.repository.save()

		self.user = User(
			username = '******',
			password = '******',
		)
		self.user.save()

		self.client = Client(
			user=self.user,
			name="TestUser",
			url="http://asdf.com",
			client_type=0,
			redirect_uri="http://fdsa.com",
			client_id = 'fdasasdfasdf',
			client_secret = 'asdflkjhlkjasdlfjkhasjlksjldkjf',
		)
		self.client.save()

	def test_get(self):
		kwargs = {
			'token': '050814a54ac5c81b990140c3c43278031d391676',
		}
		text = get(self.client, self.repository, jars_uri, **kwargs)

		self.assertIsInstance(text, Text)

		text.content.delete()

	def tearDown(self):
		self.client.delete()
		self.user.delete()
		self.repository.delete()
Ejemplo n.º 7
0
class TestGetWWW(unittest.TestCase):
	def setUp(self):
		self.repository = Repository(
			name='TestRepository',
			manager='WWW',
			endpoint='',
		)
		self.repository.save()

		self.user = User(
			username = '******',
			password = '******',
		)
		self.user.save()

		self.client = Client(
			user=self.user,
			name="TestUser",
			url="http://asdf.com",
			client_type=0,
			redirect_uri="http://fdsa.com",
			client_id = 'fdasasdfasdf',
			client_secret = 'asdflkjhlkjasdlfjkhasjlksjldkjf',
		)
		self.client.save()

	def test_get(self):
		text = get(self.client, self.repository, wikiURL)

		self.assertIsInstance(text, Text)

		text.content.delete()

	def tearDown(self):
		self.client.delete()
		self.user.delete()
		self.repository.delete()
Ejemplo n.º 8
0
def get_stat(request):
    if request.method == 'POST':
        get_sort_by = request.POST['sort_by']
        get_date_created = request.POST['date_created']
        get_number = int(request.POST['number'])

        repositories_in_database = Repository.objects.all()
        names_in_database = [repository.name for repository in repositories_in_database]
        repositories = search_repositories(number=get_number,
                                           created_after=get_date_created,
                                           sort_by=get_sort_by
                                           )
        out = []
        for repository in repositories:
            if repository["name"] in names_in_database:
                repository_from_database = Repository.objects.get(name=repository["name"])
                out.append({
                    "name": repository_from_database.name,
                    "url": repository_from_database.url,
                    "stars": repository_from_database.stars,
                    "stars_per_day": repository_from_database.stars_per_day,
                    "contributors": repository_from_database.contributors,
                    "contributors_per_day": repository_from_database.contributors_per_day,
                    "commits": repository_from_database.commits,
                    "commits_per_day": repository_from_database.commits_per_day,
                })
            else:
                repository_from_api = get_repository_stat(repo_owner=repository["owner"],
                                                          repo_name=repository["name"],
                                                          repo_created_at=repository["created"]
                                                          )
                out.append({
                    "name": repository["name"],
                    "url": repository["url"],
                    "stars": repository["stars"],
                    "stars_per_day": repository["stars_per_day"],
                    "contributors": repository_from_api["contributors"],
                    "contributors_per_day": repository_from_api["contributors_per_day"],
                    "commits": repository_from_api["commits"],
                    "commits_per_day": repository_from_api["commits_per_day"],
                })
                r = Repository(name=repository["name"],
                               owner=repository["owner"],
                               url=repository["url"],
                               created=datetime(repository["created"][0], repository["created"][1], repository["created"][2]),
                               updated=datetime(repository["updated"][0], repository["updated"][1], repository["updated"][2]),
                               stars=repository["stars"],
                               stars_per_day=repository["stars_per_day"],
                               contributors=repository_from_api["contributors"],
                               contributors_per_day=repository_from_api["contributors_per_day"],
                               commits=repository_from_api["commits"],
                               commits_per_day=repository_from_api["commits_per_day"]
                               )
                r.save()

        stars = {
            'label': 'Stars',
            'data': [],
            'units': "Stars"
        }

        stars_per_day = {
            'label': 'Stars per day',
            'data': [],
            'units': "Stars/day"
        }

        contributors = {
            'label': 'Contributors',
            'data': [],
            'units': "Contributors"
        }

        contributors_per_day = {
            'label': 'Contributors per day',
            'data': [],
            'units': "Contributors/day"
        }

        commits = {
            'label': 'Commits',
            'data': [],
            'units': "Commits"
        }

        commits_per_day = {
            'label': 'Commits per day',
            'data': [],
            'units': "Commits/day"
        }

        for repository in out:
            stars["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["stars"],
            })
            stars_per_day["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["stars_per_day"],
            })
            contributors["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["contributors"],
            })
            contributors_per_day["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["contributors_per_day"],
            })
            commits["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["commits"],
            })
            commits_per_day["data"].append({
                "name": repository["name"],
                "url": repository["url"],
                "value": repository["commits_per_day"],
            })

        response_data = [stars, stars_per_day, contributors, contributors_per_day, commits, commits_per_day]

        return HttpResponse(
            json.dumps(response_data),
            content_type='application/json'
        )
    else:
        return HttpResponse(
            json.dumps({'error': 'something wrong'}),
            content_type='application/json'
        )
Ejemplo n.º 9
0
def create_repository():
    repository = Repository(name="TestRepository",
                            manager="DSpace",
                            endpoint="http://dstools.hpsrepository.asu.edu/rest/")
    repository.save()
    return repository