diff options
Diffstat (limited to 'pygithub3/requests/repos/repo.py')
-rw-r--r-- | pygithub3/requests/repos/repo.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/pygithub3/requests/repos/repo.py b/pygithub3/requests/repos/repo.py new file mode 100644 index 0000000..45375a9 --- /dev/null +++ b/pygithub3/requests/repos/repo.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from . import Request +from pygithub3.resources.repos import Repo, Team, Tag, Branch +from pygithub3.resources.users import User + +__all__ = ('List', 'List_by_org', 'Create', 'Get', 'Update', + 'List_contributors', 'List_languages', 'List_teams', 'List_tags', + 'List_branches') + + +class List(Request): + + uri = 'users/{user}/repos' + resource = Repo + + def clean_uri(self): + if not self.user: + return 'user/repos' + + +class List_by_org(Request): + + uri = 'orgs/{org}/repos' + resource = Repo + + +class Create(Request): + + uri = 'orgs/{org}/repos' + resource = Repo + body_schema = { + 'schema': ('name', 'description', 'homepage', 'private', 'has_issues', + 'has_wiki', 'has_downloads', 'team_id'), + 'required': ('name', ) + } + + def clean_uri(self): + if not self.org: + return 'user/repos' + + +class Get(Request): + + uri = 'repos/{user}/{repo}' + resource = Repo + + +class Update(Request): + + uri = 'repos/{user}/{repo}' + resource = Repo + body_schema = { + 'schema': ('name', 'description', 'homepage', 'private', 'has_issues', + 'has_wiki', 'has_downloads', 'team_id'), + 'required': ('name', ) + } + + +class List_contributors(Request): + + uri = 'repos/{user}/{repo}/contributors' + resource = User + + +class List_languages(Request): + + uri = 'repos/{user}/{repo}/languages' + + +class List_teams(Request): + + uri = 'repos/{user}/{repo}/teams' + resource = Team + + +class List_tags(Request): + + uri = 'repos/{user}/{repo}/tags' + resource = Tag + +class List_branches(Request): + + uri = 'repos/{user}/{repo}/branches' + resource = Branch |