124:b3411bba76ac
Anton Shestakov <av6@dwimlabs.net>, Thu, 07 Jul 2016 14:23:10 +0800
adapters: add GithubAdapter

next change 162:233f06c7a492
previous change 113:c7bd4a3f0db5

candolint/adapters.py

Permissions: -rw-r--r--

Other formats: Feeds:
from os.path import basename
class HostingAdapter(object):
def __init__(self, project):
self.project = project
def get_commit_url(self, change):
return '#'
def get_branch_url(self, change):
return '#'
def get_line_url(self, change, line):
return '#'
class BitbucketAdapter(HostingAdapter):
def get_commit_url(self, change):
return '{url}/commits/{node}'.format(**{
'url': self.project.url,
'node': change.node
})
def get_branch_url(self, change):
return '{url}/branch/{branch}'.format(**{
'url': self.project.url,
'branch': change.branch
})
def get_line_url(self, change, line):
return '{url}/src/{node}/{filename}#{basename}-{line}'.format(**{
'url': self.project.url,
'node': change.node,
'filename': line['filename'],
'basename': basename(line['filename']),
'line': line['line_number']
})
class GithubAdapter(HostingAdapter):
def get_commit_url(self, change):
return '{url}/commits/{node}'.format(**{
'url': self.project.url,
'node': change.node
})
def get_branch_url(self, change):
return '{url}/tree/{branch}'.format(**{
'url': self.project.url,
'branch': change.branch
})
def get_line_url(self, change, line):
return '{url}/blob/{node}/{filename}#L{line}'.format(**{
'url': self.project.url,
'node': change.node,
'filename': line['filename'],
'basename': basename(line['filename']),
'line': line['line_number']
})
class HgwebAdapter(HostingAdapter):
def get_commit_url(self, change):
return '{url}/rev/{node}'.format(**{
'url': self.project.url,
'node': change.node
})
def get_branch_url(self, change):
return '{url}/log/{branch}'.format(**{
'url': self.project.url,
'branch': change.branch
})
def get_line_url(self, change, line):
return '{url}/file/{node}/{filename}#l{line}'.format(**{
'url': self.project.url,
'node': change.node,
'filename': line['filename'],
'line': line['line_number']
})