)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"0db5435fc776ea3f42639c5da5f644ac0439488c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"When backport-potential flag is present in a commit message, when the"},{"line_number":13,"context_line":"actual commit is merged, the CI will automatically submit a review to"},{"line_number":14,"context_line":"backport the patch to previous releases."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Example of commit message on project X"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Fix bug X in Y"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dac4157f_c635acf7","line":15,"updated":"2015-04-21 21:25:39.000000000","message":"Many times backports cannot be done automatically since they hit merge conflicts. And having the backport-potential flag only successfully propose a patch sometimes sounds more confusing then a human backporting the patch, or adding a backport tag to the launchpad bug etc.","commit_id":"73e21a90f829b573406a30f601c44101c8f527e5"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9970c190b475eda72a025273988f5464698e0523","unresolved":false,"context_lines":[{"line_number":21,"context_line":"and havana releases."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Closes-bug: #4242"},{"line_number":24,"context_line":"backport-potential: icehouse havana"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Once merged, two new reviews will be submitted in project X on branch"},{"line_number":27,"context_line":"stable/icehouse and stable/havana"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5afe65bd_027e5be4","line":24,"updated":"2015-06-01 21:02:07.000000000","message":"\"Backport-Potential\" should be capitalized.\n\nIn general, headers (or in this case, footers) should have the initial letter of each word capitalized (and of course have words separated by hyphens).  Note that this is true of Closes-Bug (that should also be changed in any examples you cite), Implements, Depends-On, Co-Authored-By, Change-Id, etc.  See http://docs.openstack.org/infra/manual/developers.html for examples.\n\nHowever, in the spirit of being strict in what you send and generous in what you receive, I think it\u0027s fine if the script treats them as case-insensitive.  As long as captialized works, and all the documentation uses capitalized versions.","commit_id":"886877f6024c13061fccf3319b647cace7741647"}],"jenkins/scripts/propose_backports.sh":[{"author":{"_account_id":6316,"name":"Anita Kuno","email":"anteaya@anteaya.info","username":"anteaya"},"change_message_id":"dd9765d2d2aa938d555135b8736b054e6cde7643","unresolved":false,"context_lines":[{"line_number":96,"context_line":"### GET ORIGINAL COMMIT MSG WITHOUT THE CHERRY-PICKS FLAG"},{"line_number":97,"context_line":"                COMMIT_MSG\u003d`remove_cherry_picks_flag_from_commit_msg $change_info`"},{"line_number":98,"context_line":"                git commit $git_args \u003c\u003cEOF"},{"line_number":99,"context_line":"$COMMIT_MSG "},{"line_number":100,"context_line":"EOF"},{"line_number":101,"context_line":"                # Do error checking manually to ignore one class of failure."},{"line_number":102,"context_line":"                set +e"}],"source_content_type":"text/x-sh","patch_set":1,"id":"dac4157f_18a2f3ae","line":99,"updated":"2015-04-21 15:05:53.000000000","message":"whitespace","commit_id":"73e21a90f829b573406a30f601c44101c8f527e5"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"eaf7b1910262498f8febd0720e0566d6d640db50","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    value\u003d\"\""},{"line_number":42,"context_line":"    rec\u003d0"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    IFS\u003d\u0027%\u0027"},{"line_number":45,"context_line":"    while read line ; do"},{"line_number":46,"context_line":"        if echo $line |  grep -q \u0027^  [^ ]*:\\s*.*\u0027 \u0026\u0026 [[ $rec -eq 1 ]]; then"},{"line_number":47,"context_line":"            break"}],"source_content_type":"text/x-sh","patch_set":2,"id":"dac4157f_3fe1fdfe","line":44,"updated":"2015-04-22 08:43:27.000000000","message":"It\u0027s bad to set it here as it is global. I tried while IFS\u003d\u0027%\u0027 read, but it didn\u0027t work as expected. If any one has an idea. Original issue is that while read loop remove leading whitespace when what we really want is to preserve them. Changing the IFS allow us to do that.","commit_id":"592697273b430d3f56b401ac3e86d07edc2fcde3"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a53e19d64edbd3d5d6d746f307d9553664ad9b56","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            fi"},{"line_number":100,"context_line":"            pushd $PROJECT_DIR"},{"line_number":101,"context_line":"            if ! git diff --stat --exit-code HEAD ; then"},{"line_number":102,"context_line":"                git cherry-pick -x $ZUUL_REF"},{"line_number":103,"context_line":"                git_args\u003d\"-a -F-\""},{"line_number":104,"context_line":"                COMMIT_MSG\u003d$(echo -e $current_commit_msg | sed \"/^${commit_flag}:/d\")"},{"line_number":105,"context_line":"                git commit $git_args \u003c\u003cEOF"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bab921fb_321760ef","line":102,"updated":"2015-04-22 19:56:04.000000000","message":"since you have \u0027set -e\u0027 if this fails with a conflict you error out right?","commit_id":"d74dd313d927da0579fab87d0319eeb4d6d069a0"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a53e19d64edbd3d5d6d746f307d9553664ad9b56","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                git cherry-pick -x $ZUUL_REF"},{"line_number":103,"context_line":"                git_args\u003d\"-a -F-\""},{"line_number":104,"context_line":"                COMMIT_MSG\u003d$(echo -e $current_commit_msg | sed \"/^${commit_flag}:/d\")"},{"line_number":105,"context_line":"                git commit $git_args \u003c\u003cEOF"},{"line_number":106,"context_line":"$COMMIT_MSG"},{"line_number":107,"context_line":"EOF"},{"line_number":108,"context_line":"                # Do error checking manually to ignore one class of failure."}],"source_content_type":"text/x-sh","patch_set":3,"id":"bab921fb_32ee40ed","line":105,"updated":"2015-04-22 19:56:04.000000000","message":"should this have a \u0027--append\u0027 doing a cherry-pick does commits the changes.","commit_id":"d74dd313d927da0579fab87d0319eeb4d6d069a0"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"7529ae08417a70f5497b03481fe32701dc022757","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                git cherry-pick -x $ZUUL_REF"},{"line_number":103,"context_line":"                git_args\u003d\"-a -F-\""},{"line_number":104,"context_line":"                COMMIT_MSG\u003d$(echo -e $current_commit_msg | sed \"/^${commit_flag}:/d\")"},{"line_number":105,"context_line":"                git commit $git_args \u003c\u003cEOF"},{"line_number":106,"context_line":"$COMMIT_MSG"},{"line_number":107,"context_line":"EOF"},{"line_number":108,"context_line":"                # Do error checking manually to ignore one class of failure."}],"source_content_type":"text/x-sh","patch_set":3,"id":"7ad32947_3ad84053","line":105,"in_reply_to":"bab921fb_32ee40ed","updated":"2015-04-28 06:56:43.000000000","message":"Done","commit_id":"d74dd313d927da0579fab87d0319eeb4d6d069a0"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"c84fd892bda83511d99174d39fe0b9a628d2bffd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"OWN_PROJECT\u003d$1"},{"line_number":16,"context_line":"if [ -z \"$OWN_PROJECT\" ] ; then"},{"line_number":17,"context_line":"    echo \"usage: $0 project\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"3acd31a7_15ec27c6","line":14,"updated":"2015-04-30 12:17:16.000000000","message":"Some extra comments here describing the script and how it\u0027s used would help, to avoid people who look at it needing to refer back to the git commit history so they can better understand its purpose and function.","commit_id":"a302878bdc4a57440a2d417fbe337f9d36fed49a"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"c84fd892bda83511d99174d39fe0b9a628d2bffd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # If the branch contains a \u0027/\u0027 character"},{"line_number":73,"context_line":"        # we assume the commiter specified a full-path"},{"line_number":74,"context_line":"        # to the branch s/he wants to backports."},{"line_number":75,"context_line":"        # Else lets assume \u0027stable/\u0027"},{"line_number":76,"context_line":"        if echo $release | grep -q \u0027/\u0027 ; then"},{"line_number":77,"context_line":"            BRANCH\u003d$release"},{"line_number":78,"context_line":"        else"}],"source_content_type":"text/x-sh","patch_set":4,"id":"3acd31a7_f5d1abfc","line":75,"updated":"2015-04-30 12:17:16.000000000","message":"I still find it a bit odd to assume that all branch names must contain a / in them. It\u0027s common in OpenStack projects, but not necessarily the case elsewhere. As written this feature does not support backporting to a branch which lacks a /.","commit_id":"a302878bdc4a57440a2d417fbe337f9d36fed49a"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"c84fd892bda83511d99174d39fe0b9a628d2bffd","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        else"},{"line_number":79,"context_line":"            BRANCH\u003d\"stable/${release}\""},{"line_number":80,"context_line":"        fi"},{"line_number":81,"context_line":"        if git branch -a | grep -q \"^  remotes/origin/${release}\" ; then"},{"line_number":82,"context_line":"            git checkout -B ${BRANCH} -t origin/${BRANCH}"},{"line_number":83,"context_line":"            # Need to set the git config in each repo as we shouldn\u0027t"},{"line_number":84,"context_line":"            # set it globally for the Jenkins user on the slaves."}],"source_content_type":"text/x-sh","patch_set":4,"id":"3acd31a7_d5ceaf59","line":81,"updated":"2015-04-30 12:17:16.000000000","message":"Instead of rewriting $release further above, you could improve this conditional to match on remotes/origin/${release} and then remotes/origin/stable/${release} if the first is not found.","commit_id":"a302878bdc4a57440a2d417fbe337f9d36fed49a"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"c84fd892bda83511d99174d39fe0b9a628d2bffd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            fi"},{"line_number":100,"context_line":"            pushd $PROJECT_DIR"},{"line_number":101,"context_line":"            if ! git diff --stat --exit-code HEAD ; then"},{"line_number":102,"context_line":"                git cherry-pick -x $ZUUL_REF"},{"line_number":103,"context_line":"                git_args\u003d\"-a -F-\""},{"line_number":104,"context_line":"                COMMIT_MSG\u003d$(echo -e $current_commit_msg | sed \"/^${commit_flag}:/d\")"},{"line_number":105,"context_line":"                git commit --amend $git_args \u003c\u003cEOF"}],"source_content_type":"text/x-sh","patch_set":4,"id":"3acd31a7_b5db331b","line":102,"updated":"2015-04-30 12:17:16.000000000","message":"You should make sure to test with non-trivial cherry-picks too. Right now it looks like if I put \"Backport-Potential: icehouse juno\" in a change and the cherry-pick fails on stable/icehouse, the script will immediately abort and stable/juno will never be tried at all.","commit_id":"a302878bdc4a57440a2d417fbe337f9d36fed49a"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9970c190b475eda72a025273988f5464698e0523","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# A longer descriptions here. The same bug was present in both icehouse"},{"line_number":27,"context_line":"# and havana releases."},{"line_number":28,"context_line":"#"},{"line_number":29,"context_line":"# Closes-bug: #4242"},{"line_number":30,"context_line":"# backport-potential: icehouse havana thirdparty/mycompany"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Once the change merged, this script will try to cherry pick the change"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5afe65bd_e2821fc8","line":29,"updated":"2015-06-01 21:02:07.000000000","message":"Capitalize Bug","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"85d6ee2c96dec4ab602caab69883f36fc6587e03","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# A longer descriptions here. The same bug was present in both icehouse"},{"line_number":27,"context_line":"# and havana releases."},{"line_number":28,"context_line":"#"},{"line_number":29,"context_line":"# Closes-bug: #4242"},{"line_number":30,"context_line":"# backport-potential: icehouse havana thirdparty/mycompany"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Once the change merged, this script will try to cherry pick the change"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3afb71cf_9a44cf74","line":29,"in_reply_to":"5afe65bd_e2821fc8","updated":"2015-06-05 21:36:50.000000000","message":"Done","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9970c190b475eda72a025273988f5464698e0523","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# and havana releases."},{"line_number":28,"context_line":"#"},{"line_number":29,"context_line":"# Closes-bug: #4242"},{"line_number":30,"context_line":"# backport-potential: icehouse havana thirdparty/mycompany"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Once the change merged, this script will try to cherry pick the change"},{"line_number":33,"context_line":"# to the following branch (in that order) for icehouse :"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5afe65bd_c28723d6","line":30,"updated":"2015-06-01 21:02:07.000000000","message":"Capitalize Backport and Potential","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"85d6ee2c96dec4ab602caab69883f36fc6587e03","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# and havana releases."},{"line_number":28,"context_line":"#"},{"line_number":29,"context_line":"# Closes-bug: #4242"},{"line_number":30,"context_line":"# backport-potential: icehouse havana thirdparty/mycompany"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Once the change merged, this script will try to cherry pick the change"},{"line_number":33,"context_line":"# to the following branch (in that order) for icehouse :"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3afb71cf_5a5f7741","line":30,"in_reply_to":"5afe65bd_c28723d6","updated":"2015-06-05 21:36:50.000000000","message":"Done","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9970c190b475eda72a025273988f5464698e0523","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if echo $line |  grep -q \u0027^  [^ ]*:\\s*.*\u0027 \u0026\u0026 [[ $rec -eq 1 ]]; then"},{"line_number":72,"context_line":"            break"},{"line_number":73,"context_line":"        fi"},{"line_number":74,"context_line":"        if echo $line |  grep -q \"^  ${key}:\"; then"},{"line_number":75,"context_line":"            rec\u003d1"},{"line_number":76,"context_line":"        fi"},{"line_number":77,"context_line":"        if [[ $rec -eq 1 ]] ; then"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5afe65bd_a26d4734","line":74,"updated":"2015-06-01 21:02:07.000000000","message":"Probably need a \"-i\" here","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"85d6ee2c96dec4ab602caab69883f36fc6587e03","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if echo $line |  grep -q \u0027^  [^ ]*:\\s*.*\u0027 \u0026\u0026 [[ $rec -eq 1 ]]; then"},{"line_number":72,"context_line":"            break"},{"line_number":73,"context_line":"        fi"},{"line_number":74,"context_line":"        if echo $line |  grep -q \"^  ${key}:\"; then"},{"line_number":75,"context_line":"            rec\u003d1"},{"line_number":76,"context_line":"        fi"},{"line_number":77,"context_line":"        if [[ $rec -eq 1 ]] ; then"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3afb71cf_fa55031d","line":74,"in_reply_to":"5afe65bd_a26d4734","updated":"2015-06-05 21:36:50.000000000","message":"Done","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9970c190b475eda72a025273988f5464698e0523","unresolved":false,"context_lines":[{"line_number":87,"context_line":"git clone ssh://$USERNAME@review.openstack.org:29418/$PROJECT.git"},{"line_number":88,"context_line":"pushd $PROJECT_DIR"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"commit_flag\u003d\u0027backport-potential\u0027"},{"line_number":91,"context_line":"change_info\u003d$(ssh -p 29418 $USERNAME@review.openstack.org gerrit query --current-patch-set status:open project:$PROJECT topic:$TOPIC owner:$USERNAME branch:$BRANCH)"},{"line_number":92,"context_line":"current_commit_msg\u003d$(extract_field_from_patchset commitMessage $change_info)"},{"line_number":93,"context_line":"BACKPORTS_TO\u003d$(cat $current_commit_msg | grep \"${commit_flag}:\" | sed \"s/\\s*${commit_flag}:\\(.*\\)/\\1/\")"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5afe65bd_826a4b19","line":90,"updated":"2015-06-01 21:02:07.000000000","message":"And would be good to capitalize both words here.","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"85d6ee2c96dec4ab602caab69883f36fc6587e03","unresolved":false,"context_lines":[{"line_number":87,"context_line":"git clone ssh://$USERNAME@review.openstack.org:29418/$PROJECT.git"},{"line_number":88,"context_line":"pushd $PROJECT_DIR"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"commit_flag\u003d\u0027backport-potential\u0027"},{"line_number":91,"context_line":"change_info\u003d$(ssh -p 29418 $USERNAME@review.openstack.org gerrit query --current-patch-set status:open project:$PROJECT topic:$TOPIC owner:$USERNAME branch:$BRANCH)"},{"line_number":92,"context_line":"current_commit_msg\u003d$(extract_field_from_patchset commitMessage $change_info)"},{"line_number":93,"context_line":"BACKPORTS_TO\u003d$(cat $current_commit_msg | grep \"${commit_flag}:\" | sed \"s/\\s*${commit_flag}:\\(.*\\)/\\1/\")"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3afb71cf_da31270d","line":90,"in_reply_to":"5afe65bd_826a4b19","updated":"2015-06-05 21:36:50.000000000","message":"Done","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"6916e2e8db929724951609b86c233e66ace8f0a4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            set -e"},{"line_number":129,"context_line":"            if [ \"$RET\" -ne \"0\" ] ; then"},{"line_number":130,"context_line":"                continue"},{"line_number":131,"context_line":"            fi"},{"line_number":132,"context_line":"            git_args\u003d\"-a -F-\""},{"line_number":133,"context_line":"            COMMIT_MSG\u003d$(echo -e $current_commit_msg | sed \"/^${commit_flag}:/d\")"},{"line_number":134,"context_line":"            git commit --amend $git_args \u003c\u003cEOF"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3acd31a7_8fbd786a","line":131,"updated":"2015-05-04 17:01:59.000000000","message":"I still don\u0027t like the idea of having the tag backport something automatically only sometimes.","commit_id":"886877f6024c13061fccf3319b647cace7741647"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"54d69d14590f4afcf3882360c2a958ff2795fd34","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        else"},{"line_number":102,"context_line":"            continue"},{"line_number":103,"context_line":"        fi"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        git checkout -B ${BRANCH} -t origin/${BRANCH}"},{"line_number":106,"context_line":"        # Need to set the git config in each repo as we shouldn\u0027t"},{"line_number":107,"context_line":"        # set it globally for the Jenkins user on the slaves."}],"source_content_type":"text/x-sh","patch_set":8,"id":"ba3cc151_2702c00a","line":104,"updated":"2015-07-03 01:04:57.000000000","message":"I think a lot of the code here has been extracted out to a common file that should be sourced here.","commit_id":"b931b953d18f3aa48979522b5b6890602c7a5a20"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"9fbc4e5761c8884b63ccfde6a653fa4ff8483e8e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        else"},{"line_number":102,"context_line":"            continue"},{"line_number":103,"context_line":"        fi"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        git checkout -B ${BRANCH} -t origin/${BRANCH}"},{"line_number":106,"context_line":"        # Need to set the git config in each repo as we shouldn\u0027t"},{"line_number":107,"context_line":"        # set it globally for the Jenkins user on the slaves."}],"source_content_type":"text/x-sh","patch_set":8,"id":"ba3cc151_1f2f4da2","line":104,"in_reply_to":"ba3cc151_2702c00a","updated":"2015-07-07 09:52:28.000000000","message":"James,\n\nThanks for pointing that out. Are you talking about setup_review[1] and send_patch[2] for example?\nIf so they are really specific for the project they belong and not generic enough here IMO.\n\nI have nothing against working on making them[1][2] more generic, but I would like however -if possible- to see this going throught to ensure it works as expected meanwhile.\n\n\n[1] https://github.com/openstack-infra/project-config/blob/master/jenkins/scripts/common_translation_update.sh#L190\n[2] https://github.com/openstack-infra/project-config/blob/master/jenkins/scripts/common_translation_update.sh#L247","commit_id":"b931b953d18f3aa48979522b5b6890602c7a5a20"},{"author":{"_account_id":9410,"name":"Yanis Guenane","email":"yguenane@redhat.com","username":"yguenane"},"change_message_id":"961a2162aa4aeeeb42022466bd16f0c6d125930d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"#"},{"line_number":60,"context_line":"# TODO(fungi): switch to zuul-cloner once we add a persistent git cache"},{"line_number":61,"context_line":"# to proposal.slave.openstack.org"},{"line_number":62,"context_line":"if ! git clone git://git.openstack.org/$PROJECT.git; then"},{"line_number":63,"context_line":"    # ALL_SUCCESS is being set to 1, which means that a failure condition"},{"line_number":64,"context_line":"    # has been detected. The job will end in failure once it finishes"},{"line_number":65,"context_line":"    # cycling through the remaining projects."}],"source_content_type":"text/x-sh","patch_set":11,"id":"3a50d1a3_5c7f99df","line":62,"updated":"2015-07-23 12:10:18.000000000","message":"The script receives the PROJECT value as the name: variable in projects.yaml (ie. puppet-nova) and not the full path (ie. openstack/puppet-nova) this will result in this command to fail.\n\nLooking at propose_update.sh it seems to list (exhaustively?) the project for which it is suitable and specify the full name[1].\n\nShould we :\n\n * list exhaustively the repo name we want to handle (not very scalable)\n * try to clone openstack/X openstack-infra/X stackforge/X where X is the name of the project and stop at the first one that return a non-zero value? (can a project have the same name in openstack/ and stackforge/ namespace?)\n * anything else ?\n\n\n[1] https://github.com/openstack-infra/project-config/blob/master/jenkins/scripts/propose_update.sh#L43\n\nThank you in advance for any feedback.","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"},{"author":{"_account_id":6039,"name":"Joni Harker","email":"code@gentlydownthe.net","username":"jesusaurus"},"change_message_id":"e4958dbd43ec050610b28cbe6ede38d1d1ab86e6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        elif git branch -a | grep -q \"^  remotes/origin/stable/${release}\" ; then"},{"line_number":83,"context_line":"            BRANCH\u003d\"stable/${release}\""},{"line_number":84,"context_line":"        else"},{"line_number":85,"context_line":"            continue"},{"line_number":86,"context_line":"        fi"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        git checkout -B proposals -t origin/${BRANCH}"}],"source_content_type":"text/x-sh","patch_set":11,"id":"3a50d1a3_971e455d","line":85,"updated":"2015-07-23 17:32:13.000000000","message":"We may want to print a message about ignoring a backports_to value here.","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"49015f0ecdbe59172b23f5140bf8f08d017603c3","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            continue"},{"line_number":86,"context_line":"        fi"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        git checkout -B proposals -t origin/${BRANCH}"},{"line_number":89,"context_line":"        # Do error checking manually in case of failures like a broken .gitreview file."},{"line_number":90,"context_line":"        set +e"},{"line_number":91,"context_line":"        git review -s"}],"source_content_type":"text/x-sh","patch_set":11,"id":"1a4dcd0f_7ac0e37c","line":88,"updated":"2015-08-04 20:15:02.000000000","message":"Because these nodes are reused and we don\u0027t cleanup repo state below this checkout is insufficient to reset repo state before attempting the cherry pick below on the next run of the job.\n\nBasically what happens if cherry pick fails due to a conflict then you run this job against the same repo again? I think it fails because its in a conflict resolution state.","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"62822ce9dc7b0cf1564f3da5c766c9958b3cec32","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        fi"},{"line_number":99,"context_line":"        if ! git diff --stat --exit-code HEAD ; then"},{"line_number":100,"context_line":"            set +e"},{"line_number":101,"context_line":"            git cherry-pick -x $ZUUL_REF"},{"line_number":102,"context_line":"            RET\u003d$?"},{"line_number":103,"context_line":"            set -e"},{"line_number":104,"context_line":"            if [ \"$RET\" -ne \"0\" ] ; then"}],"source_content_type":"text/x-sh","patch_set":11,"id":"1a4dcd0f_0cc07f7a","line":101,"updated":"2015-08-05 05:14:18.000000000","message":"just optimise to \n\n if git ... ; then\n   ...\n fi","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"49015f0ecdbe59172b23f5140bf8f08d017603c3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if [ \"$RET\" -ne \"0\" ] ; then"},{"line_number":105,"context_line":"                ALL_SUCCESS\u003d1"},{"line_number":106,"context_line":"                echo \"Error during git cherry-pick -x: Ignoring cherry pick in $PROJECT\""},{"line_number":107,"context_line":"                continue"},{"line_number":108,"context_line":"            fi"},{"line_number":109,"context_line":"            git_args\u003d\"-a -F-\""},{"line_number":110,"context_line":"            COMMIT_MSG\u003d$(git log --pretty\u003dformat:%B -n 1 | sed \"/^${commit_flag}:/Id\")"}],"source_content_type":"text/x-sh","patch_set":11,"id":"1a4dcd0f_7a47831d","line":107,"updated":"2015-08-04 20:15:02.000000000","message":"Need to handle cleanup here or above when checking the branch out.","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"}],"zuul/layout.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"49015f0ecdbe59172b23f5140bf8f08d017603c3","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"  - name: propose-backports"},{"line_number":269,"context_line":"    post:"},{"line_number":270,"context_line":"      - \u0027hook-{name}-propose-backports\u0027"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"  - name: integrated-gate"},{"line_number":273,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1a4dcd0f_1a6d1f98","line":270,"updated":"2015-08-04 20:15:02.000000000","message":"This doesn\u0027t actually add the job to any projects. Making this change a noop.","commit_id":"0910dbe3168e2366c7237e0393591ffaf460bdc5"}]}
