Well I found the issue but im not sure why its happening, its because I specified --summary
On Monday, December 17, 2018 at 11:22:53 AM UTC-8, [email protected] wrote: > > Hello, been looking around on the google group and general google searches > to highlight what I'm doing wrong but I can't seem to find anything. I'm > trying to write a python script that loops open PR's on bitbucket and > creates review requests based on the open PR's with their JIRA link int he > summary. I am however getting some issues and even -d option isn't > returning anything I can use to diagnose the issue. This was working last > week. I'm running this script on PR generation from Jenkins and it auto > creates my requests. I started getting the following error: > > > example bash command that is getting generated to run the script I > generate with the python script. > > bash review 'mjb-neb-4110-dirty-note' 'PR_Reviewers' 'myrepo' 'myuser' > 'mypass' 'post' 'development' 'openingPRUser/reviewBuser' '<ul><li>The > front end uses null as the basis for dirty note. Move the logic of > normalizing blank and empty appointment note values to null from the > appointment converter to the sequelize model itself, so all api calls will > consistently return null if the note does not have content. Added > integration tests for this.</li><li>Fixed description; refactor test a > bit</li></ul><p>QAd by Kyle on local branch.</p> jira url > https://ourjira.atlassian.net/browse/NEB-4110' 'NEB-4110' > > CRITICAL: Too many revisions specified > > #!/usr/bin/env python > # encoding=utf8 > import sys > reload(sys) > sys.setdefaultencoding('utf8') > import subprocess > import json > import re > import simplejson as json > from restkit import Resource, BasicAuth, request > import os > > def run_command(command): > p = subprocess.Popen(command, stdout=subprocess.PIPE, > stderr=subprocess.PIPE, shell=True) > out, err = p.communicate() > if err: > if "bash" in command: > return err > else: > print err > return out > > def update_jira_ticket_with_comment(ticket_id, reviewboard_link): > server_url = "https://ourjira.atlassian.net/rest/api/2/issue" > sub_url = "" > #server_url = os.environ["TICKET_URL"] > username = os.environ["TICKET_USER"] > password = os.environ["TICKET_PASSWORD"] > project = os.environ["TICKET_PROJECT_ID"] > desc = os.environ["TICKET_DESC"] > task_summary = os.environ["TICKET_SUMMARY"] > > complete_url = server_url + "/" + ticket_id + "/comment" > headers = { "Content-Type": "application/json"} > comment_payload = { > "body": "There is a review board review for this ticket and it can be > found at the following URL: " + reviewboard_link > } > auth = BasicAuth(os.environ["BIT_BUCKET_USER"], > os.environ["BIT_BUCKET_PASSWORD"]) > resource = Resource(complete_url, filters=[auth]) > response = resource.post(headers={'Content-Type': 'application/json'}, > payload=json.dumps(comment_payload)) > return response > > def clone_repo(bit_bucket_user, bit_bucket_password, repo): > if os.path.exists("./" + repo): > print "Repo exists, we will erase it and clone a fresh copy." > command_output = run_command("rm -rf " + repo) > curl_command = ("git clone > https://%s:%[email protected]/ourteam/%s.git" % (bit_bucket_user, > bit_bucket_password, repo)) > json_returned = run_command(curl_command) > print "Repo Cloned" > else: > print "Repo doesn't exist locally to build the diff for the review > requests, cloning repo: " + repo > curl_command = ("git clone > https://%s:%[email protected]/ourteam/%s.git" % (bit_bucket_user, > bit_bucket_password, repo)) > json_returned = run_command(curl_command) > print "Repo Cloned" > > def generate_bash_file(): > review_generation_bash = """#!/usr/bin/env bash > set +ex > > BRANCH_NAME=$1 > REVIEWERS=$2 > REPO=$3 > rb_user=$4 > rb_password=$5 > action=$6 > base_branch=$7 > > #added these options > submit_as=$8 > summary=$9 > jira_id=$10 > > > cd $REPO > git checkout $BRANCH_NAME > > if [ "$action" == "post" ]; then > > rbt post --repository=$REPO \ > --tracking-branch=origin/$BRANCH_NAME \ > --parent=origin/$base_branch \ > --branch=$BRANCH_NAME \ > --guess-fields=auto \ > --target-groups=$REVIEWERS \ > --publish \ > --server=http://reviews.nebula.care \ > --username=$rb_user \ > --password=$rb_password \ > --submit-as=$submit_as \ > --bugs-closed=$jira_id \ > --summary=$summary \ > -d > else > rbt post --repository=$REPO \ > --tracking-branch=origin/$BRANCH_NAME \ > --parent=origin/$base_branch \ > --branch=$BRANCH_NAME \ > --guess-fields=auto \ > --target-groups=$REVIEWERS \ > --publish \ > --server=http://reviews.nebula.care \ > --username=$rb_user \ > --password=$rb_password \ > --submit-as=$submit_as \ > --summary=$summary \ > --bugs-closed=$jira_id \ > -u \ > -d > fi > > cd ../ > exit 0 > """ > > write_bash_file = open("review", "w") > write_bash_file.write(review_generation_bash) > write_bash_file.close() > return "successfully created review board commands bash file for > execution." > > def get_bit_bucket_prs(repo, bit_bucket_user, bit_bucket_password): > curl_command = ( > "curl > https://api.bitbucket.org/2.0/repositories/ourteam/%s/pullrequests -u %s:%s > --request GET --header 'Content-Type: application/json'" % ( > repo, bit_bucket_user, bit_bucket_password)) > json_returned = run_command(curl_command) > json_returned = json_returned.encode('ascii', 'ignore').decode('ascii') > json_object = json.loads(str(json_returned)) > return json_object > > > print "Load the environment variables required to run the job." > bit_bucket_user = os.environ["BIT_BUCKET_USER"] > bit_bucket_password = os.environ["BIT_BUCKET_PASSWORD"] > review_board_user = os.environ["REVIEW_BOARD_USER"] > review_board_password = os.environ["REVIEW_BOARD_PASSWORD"] > repo = os.environ["SELECT_REPO"] > > print "Clone repo." > clone_repo(bit_bucket_user, bit_bucket_password, repo) > print "Create Reviewboard command bash file." > generate_bash_file() > > json_object = get_bit_bucket_prs(repo, bit_bucket_user, bit_bucket_password) > > for obj in json_object["values"]: > reviewers = "PR_Reviewers" > origin_branch = obj["destination"]["branch"]["name"] > branch_being_merged = obj["source"]["branch"]["name"] > jira_code = obj["title"] > PR_ID = obj["id"] > desc = obj["description"].replace("\n", "").strip() > author_username = obj["author"]["username"] > p = re.compile("(NEB-\d{4})") > jira_code = p.findall(jira_code)[0] > jira_link = "https://ourjira.atlassian.net/browse/" + jira_code > summary = obj["summary"]["html"].replace("\n", "").strip() + " jira url " > + jira_link > > try: > print "try and create review request for " + branch_being_merged + " > and " + origin_branch > > rb_command = ("bash review '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' > '%s' '%s'" % (branch_being_merged, reviewers, repo, review_board_user, > review_board_password, "post", origin_branch, author_username, summary, > jira_code)) > rb_command_output = run_command(rb_command).encode('utf-8', > 'ignore').decode('utf-8') > #print rb_command_output > > if "There don't seem to be any diffs!" in rb_command_output: > print "There is most likely no pr between branch " + > branch_being_merged + " and " + origin_branch > > if "commit ID specified has already been used" in rb_command_output: > print "There seems to be a review for branch " + > branch_being_merged + " and " + origin_branch + " , lets try to update it." > rb_command = ("bash review '%s' '%s' '%s' '%s' '%s' '%s' '%s' > '%s' '%s' '%s'" % (branch_being_merged, reviewers, repo, review_board_user, > review_board_password, "update", origin_branch,author_username, summary, > jira_code)) > rb_command_output = run_command(rb_command).encode('utf-8', > 'ignore').decode('utf-8') > if rb_command_output: > print rb_command_output > else: > print "your review request has been updated." > except Exception as e: > print e > > > > > > > -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "Review Board Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
