def api_versions(self): from readthedocs.builds.models import APIVersion ret = [] for version_data in api.project(self.pk ).active_versions.get()['versions']: version = APIVersion(**version_data) ret.append(version) return sort_version_aware(ret)
def api_versions(self): from readthedocs.builds.models import APIVersion ret = [] for version_data in api.project( self.pk).active_versions.get()['versions']: version = APIVersion(**version_data) ret.append(version) return sort_version_aware(ret)
def get_subproject_urls(self): """ List subproject URLs. This is used in search result linking """ if settings.DONT_HIT_DB: return [(proj['slug'], proj['canonical_url']) for proj in ( api.project(self.pk).subprojects().get()['subprojects'])] return [(proj.child.slug, proj.child.get_docs_url()) for proj in self.subprojects.all()]
def get_subproject_urls(self): """ List subproject URLs. This is used in search result linking """ if settings.DONT_HIT_DB: return [(proj['slug'], proj['canonical_url']) for proj in (api.project(self.pk).subprojects().get()['subprojects'])] return [(proj.child.slug, proj.child.get_docs_url()) for proj in self.subprojects.all()]
def get_token_for_project(cls, project, force_local=False): """Get access token for project by iterating over project users.""" # TODO why does this only target GitHub? if not settings.ALLOW_PRIVATE_REPOS: return None token = None try: if settings.DONT_HIT_DB and not force_local: token = api.project(project.pk).token().get()['token'] else: for user in project.users.all(): tokens = SocialToken.objects.filter( account__user=user, app__provider=cls.adapter.provider_id, ) if tokens.exists(): token = tokens[0].token except Exception: log.exception('Failed to get token for project') return token
def get_canonical_url(self): if settings.DONT_HIT_DB: return api.project(self.pk).canonical_url().get()['url'] return self.get_docs_url()
def set_valid_clone(self): """Mark on the project that it has been cloned properly.""" api_v2.project(self.data.project.pk).patch({'has_valid_clone': True}) self.data.project.has_valid_clone = True self.data.version.project.has_valid_clone = True
def get_project(project_pk): """Get project from API.""" project_data = api_v2.project(project_pk).get() return APIProject(**project_data)