def github_repo(request, owner, repo): owner = urllib.unquote(owner) repo = urllib.unquote(repo) user = request.user github_provider = GithubProvider(user) # check to see if the repo is being watched by the authed user or not watched = github_provider.get_watched_status(owner, repo) starred = github_provider.get_starred_status(owner, repo) update = False try: repository = github_provider.retrieve_repository_details(owner, repo) except ObjectDoesNotExist: update = True repository = Repository() if update or (datetime.now() - repository.last_modified) > timedelta(days = 1): repository_dict = github_provider.get_repository_details(owner, repo) repository = github_provider.create_or_update_repository_details(repository_dict, repository) if not repository.private: repository.save() repo_events = github_provider.get_repository_events(owner, repo) return render_to_response('github_repo.html', {'repository': repository, 'repo_events': repo_events, 'watched':watched, 'starred':starred}, RequestContext(request))