--- a/bitshifter.py Thu Feb 09 15:18:22 2017 -0600
+++ b/bitshifter.py Fri Jan 31 06:50:57 2020 -0600
@@ -1,3 +1,5 @@
@@ -10,6 +12,22 @@
+ def __init__(self, path): + return f'hg pull --cwd {self.path} incoming' + return f'hg push --cwd {self.path} --new-branch outgoing' @app.route('/hooked', methods=['POST'])
data = request.get_json()
@@ -17,41 +35,38 @@
repo = data.get('repository')
- if repo.get('scm') == 'hg' and repo.get('full_name') == 'pidgin/main':
- cmd1 = 'hg pull --cwd pidgin bitbucket'
- print 'running: {}'.format(cmd1)
- out1 = subprocess.check_output(cmd1.split())
- except Exception as exp:
- return make_response((exp, 500))
- cmd2 = 'hg push --cwd pidgin --new-branch pidgin.im'
- print 'running: {}'.format(cmd2)
- out2 = subprocess.check_output(cmd2.split())
- return make_response((output, 200,))
- except subprocess.CalledProcessError as exp:
- if exp.returncode == 1:
- output = out1 + exp.output
- return make_response((output, 200,))
- return make_response((exp, 500))
- except Exception as exp:
- return make_response((exp, 500))
+ path = os.path.join('respositories', repo.get('full_name')) + if not os.path.isdir(path): + msg = f'unknown repository {repo.get("full_name")}' + return make_response((msg, 400)) - return make_response(('bad request', 400))
+ vcs_cls = VCS_TOOLS.get(repo.get('scm'), None) + msg = f'unknown vcs {repo.get("scm")}' + return make_response((msg, 400)) + vcs = vcs_cls(repo.get('full_name')) + out = subprocess.check_output(vcs.pull().split()) + out = subprocess.check_output(vcs.push().split()) + except subprocess.CalledProcessError as exp: + if exp.returncode == 1: + return make_response((exp.output, 500)) + return make_response((exp, 500)) + except Exception as exp: + return make_response((exp, 500)) + return make_response(('bitshifted', 200)) if __name__ == '__main__':
--- a/requirements.txt Thu Feb 09 15:18:22 2017 -0600
+++ b/requirements.txt Fri Jan 31 06:50:57 2020 -0600
@@ -1,1 +1,1 @@