示例#1
0
    def _folder_metadata(self, path, raw=False):
        query = self._build_query(path.identifier)

        resp = yield from self.make_request(
            "GET", self.build_url("files", q=query, alt="json"), expects=(200,), throws=exceptions.MetadataError
        )

        data = yield from resp.json()

        return [self._serialize_item(path.child(item["title"]), item, raw=raw) for item in data["items"]]
示例#2
0
    async def _folder_metadata(self, path, raw=False):
        query = self._build_query(path.identifier)

        async with self.request(
            'GET',
            self.build_url('files', q=query, alt='json', maxResults=1000),
            expects=(200, ),
            throws=exceptions.MetadataError,
        ) as resp:
            return [
                self._serialize_item(path.child(item['title']), item, raw=raw)
                for item in (await resp.json())['items']
            ]
示例#3
0
    async def _folder_metadata(self, path, raw=False):
        query = self._build_query(path.identifier)

        async with self.request(
                'GET',
                self.build_url('files', q=query, alt='json', maxResults=1000),
                expects=(200, ),
                throws=exceptions.MetadataError,
        ) as resp:
            return [
                self._serialize_item(path.child(item['title']), item, raw=raw)
                for item in (await resp.json())['items']
            ]
示例#4
0
    def _folder_metadata(self, path, raw=False):
        query = self._build_query(path.identifier)

        resp = yield from self.make_request(
            'GET',
            self.build_url('files', q=query, alt='json'),
            expects=(200, ),
            throws=exceptions.MetadataError,
        )

        data = yield from resp.json()

        return [
            self._serialize_item(path.child(item['title']), item, raw=raw)
            for item in data['items']
        ]
示例#5
0
    def _folder_metadata(self, path, raw=False):
        query = self._build_query(path.identifier)

        resp = yield from self.make_request(
            'GET',
            self.build_url('files', q=query, alt='json'),
            expects=(200, ),
            throws=exceptions.MetadataError,
        )

        data = yield from resp.json()

        return [
            self._serialize_item(path.child(item['title']), item, raw=raw)
            for item in data['items']
        ]
示例#6
0
 async def _folder_metadata(self, path, raw=False):
     query = self._build_query(path.identifier)
     built_url = self.build_url('files', q=query, alt='json', maxResults=1000)
     full_resp = []
     while built_url:
         async with self.request(
             'GET',
             built_url,
             expects=(200, ),
             throws=exceptions.MetadataError,
         ) as resp:
             resp_json = await resp.json()
             full_resp.extend([
                 self._serialize_item(path.child(item['title']), item, raw=raw)
                 for item in resp_json['items']
             ])
             built_url = resp_json.get('nextLink', None)
     return full_resp
示例#7
0
    async def create_folder(self, path, branch=None, message=None, **kwargs):
        GitHubPath.validate_folder(path)

        assert self.name is not None
        assert self.email is not None
        message = message or settings.UPLOAD_FILE_MESSAGE

        keep_path = path.child('.gitkeep')

        data = {
            'content': '',
            'path': keep_path.path,
            'committer': self.committer,
            'branch': path.identifier[0],
            'message': message or settings.UPLOAD_FILE_MESSAGE
        }

        resp = await self.make_request('PUT',
                                       self.build_repo_url(
                                           'contents', keep_path.path),
                                       data=json.dumps(data),
                                       expects=(201, 422, 409),
                                       throws=exceptions.CreateFolderError)

        data = await resp.json()

        if resp.status in (422, 409):
            if resp.status == 409 or data.get(
                    'message'
            ) == 'Invalid request.\n\n"sha" wasn\'t supplied.':
                raise exceptions.FolderNamingConflict(str(path))
            raise exceptions.CreateFolderError(data, code=resp.status)

        data['content']['name'] = path.name
        data['content']['path'] = data['content']['path'].replace(
            '.gitkeep', '')

        return GitHubFolderContentMetadata(data['content'],
                                           commit=data['commit'])
示例#8
0
 async def _folder_metadata(self, path, raw=False):
     query = self._build_query(path.identifier)
     built_url = self.build_url('files',
                                q=query,
                                alt='json',
                                maxResults=1000)
     full_resp = []
     while built_url:
         async with self.request(
                 'GET',
                 built_url,
                 expects=(200, ),
                 throws=exceptions.MetadataError,
         ) as resp:
             resp_json = await resp.json()
             full_resp.extend([
                 self._serialize_item(path.child(item['title']),
                                      item,
                                      raw=raw)
                 for item in resp_json['items']
             ])
             built_url = resp_json.get('nextLink', None)
     return full_resp
    async def create_folder(self, path, branch=None, message=None, **kwargs):
        GitHubPath.validate_folder(path)

        assert self.name is not None
        assert self.email is not None
        message = message or settings.UPLOAD_FILE_MESSAGE

        keep_path = path.child('.gitkeep')

        data = {
            'content': '',
            'path': keep_path.path,
            'committer': self.committer,
            'branch': path.identifier[0],
            'message': message or settings.UPLOAD_FILE_MESSAGE
        }

        resp = await self.make_request(
            'PUT',
            self.build_repo_url('contents', keep_path.path),
            data=json.dumps(data),
            expects=(201, 422, 409),
            throws=exceptions.CreateFolderError
        )

        data = await resp.json()

        if resp.status in (422, 409):
            if resp.status == 409 or data.get('message') == 'Invalid request.\n\n"sha" wasn\'t supplied.':
                raise exceptions.FolderNamingConflict(str(path))
            raise exceptions.CreateFolderError(data, code=resp.status)

        data['content']['name'] = path.name
        data['content']['path'] = data['content']['path'].replace('.gitkeep', '')

        return GitHubFolderContentMetadata(data['content'], commit=data['commit'])
示例#10
0
    def create_folder(self, path, branch=None, message=None, **kwargs):
        GitHubPath.validate_folder(path)

        assert self.name is not None
        assert self.email is not None
        message = message or settings.UPLOAD_FILE_MESSAGE

        keep_path = path.child(".gitkeep")

        data = {
            "content": "",
            "path": keep_path.path,
            "committer": self.committer,
            "branch": path.identifier[0],
            "message": message or settings.UPLOAD_FILE_MESSAGE,
        }

        resp = yield from self.make_request(
            "PUT",
            self.build_repo_url("contents", keep_path.path),
            data=json.dumps(data),
            expects=(201, 422, 409),
            throws=exceptions.CreateFolderError,
        )

        data = yield from resp.json()

        if resp.status in (422, 409):
            if resp.status == 409 or data.get("message") == 'Invalid request.\n\n"sha" wasn\'t supplied.':
                raise exceptions.FolderNamingConflict(str(path))
            raise exceptions.CreateFolderError(data, code=resp.status)

        data["content"]["name"] = path.name
        data["content"]["path"] = data["content"]["path"].replace(".gitkeep", "")

        return GitHubFolderContentMetadata(data["content"], commit=data["commit"])