project: remove notify scripts as it's currently inside external project.
- https://internal-code.rhodecode.com/rhodecode-jenkins-notify
This commit is contained in:
parent
6005bd3290
commit
af04fb1d46
2 changed files with 0 additions and 166 deletions
|
|
@ -1,91 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (C) 2010-2016 RhodeCode GmbH
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License, version 3
|
||||
# (only), as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# This program is dual-licensed. If you wish to learn more about the
|
||||
# RhodeCode Enterprise Edition, including its added features, Support services,
|
||||
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
||||
|
||||
import argparse
|
||||
|
||||
from rhodecode_api import RhodeCodeAPI
|
||||
|
||||
|
||||
def add_api_pr_args(parser):
|
||||
parser.add_argument("--url", help="Rhodecode host url", required=True)
|
||||
parser.add_argument("--token", help="Rhodecode user token", required=True)
|
||||
parser.add_argument("--repoid", help="Repo id", required=True)
|
||||
parser.add_argument("--message", help="Comment to add", required=True)
|
||||
parser.add_argument("--status", help="Status to set (approved|rejected)")
|
||||
parser.add_argument(
|
||||
"--prid",
|
||||
help="(Optional) Pull request id")
|
||||
parser.add_argument(
|
||||
"--commit-id",
|
||||
help="(Optional) Expected commit ID for source repo")
|
||||
|
||||
|
||||
def get_pr_head(args):
|
||||
rc = RhodeCodeAPI(args.url, args.token)
|
||||
pr_info = rc.get_pull_request(
|
||||
repoid=args.repoid,
|
||||
pullrequestid=args.prid
|
||||
)
|
||||
if pr_info['error']:
|
||||
return None
|
||||
|
||||
return pr_info['result']['source']['reference']['commit_id']
|
||||
|
||||
|
||||
def pr_has_same_head(args):
|
||||
head_id = get_pr_head(args)
|
||||
return head_id == args.commit_id
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
add_api_pr_args(parser)
|
||||
args = parser.parse_args()
|
||||
status = args.status
|
||||
|
||||
rc = RhodeCodeAPI(args.url, args.token)
|
||||
|
||||
if not (args.prid or args.commit_id):
|
||||
raise AttributeError('You must specify --prid or --commit-id')
|
||||
|
||||
if args.prid:
|
||||
if args.commit_id and status:
|
||||
if not pr_has_same_head(args):
|
||||
# PR updated, don't set status
|
||||
status = None
|
||||
|
||||
resp = rc.comment_pull_request(
|
||||
repoid=args.repoid,
|
||||
pullrequestid=int(args.prid),
|
||||
message=args.message,
|
||||
status=status
|
||||
)
|
||||
elif args.commit_id:
|
||||
resp = rc.comment_commit(
|
||||
repoid=args.repoid,
|
||||
commit_id=args.commit_id,
|
||||
message=args.message,
|
||||
status=status,
|
||||
)
|
||||
|
||||
if resp['error']:
|
||||
raise Exception(resp['error'])
|
||||
else:
|
||||
print resp
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (C) 2010-2016 RhodeCode GmbH
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License, version 3
|
||||
# (only), as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# This program is dual-licensed. If you wish to learn more about the
|
||||
# RhodeCode Enterprise Edition, including its added features, Support services,
|
||||
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
||||
|
||||
import json
|
||||
import urlparse
|
||||
import uuid
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
class RhodeCodeAPI(object):
|
||||
"""
|
||||
Make generic calls to RCE API.
|
||||
|
||||
To call any API method, instanciate the API with the URL of your
|
||||
RCE instance and your user token.
|
||||
Then use a method call with the name of your API method, and pass the
|
||||
correct parameters.
|
||||
|
||||
Will return a dict with the response from the API call
|
||||
|
||||
eg.:
|
||||
api = RhodeCodeAPI('http://my.rhodecode.com');
|
||||
response = api.comment_pull_request(
|
||||
repoid=args.repoid,
|
||||
pullrequestid=int(args.prid),
|
||||
message=args.message,
|
||||
status=args.status
|
||||
)
|
||||
if response['error']:
|
||||
raise Exception(resp['error'])
|
||||
else:
|
||||
print resp
|
||||
"""
|
||||
headers = {'content-type': 'application/json'}
|
||||
|
||||
def __init__(self, instance_url, user_token):
|
||||
self.url = instance_url
|
||||
self.key = user_token
|
||||
|
||||
def __getattr__(self, name):
|
||||
return lambda **kwargs: self._call(name, **kwargs)
|
||||
|
||||
def _call(self, method, **kwargs):
|
||||
payload = {
|
||||
'id': str(uuid.uuid4()),
|
||||
'api_key': self.key,
|
||||
'method': method,
|
||||
'args': kwargs
|
||||
}
|
||||
url = urlparse.urljoin(self.url, '_admin/api')
|
||||
resp = requests.post(
|
||||
url, data=json.dumps(payload), headers=self.headers)
|
||||
|
||||
if resp.ok:
|
||||
return resp.json()
|
||||
else:
|
||||
resp.raise_for_status()
|
||||
Loading…
Add table
Add a link
Reference in a new issue