)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"745633b673dab5109ccd0e7f5ed4ecf5d6048c43","unresolved":false,"context_lines":[{"line_number":11,"context_line":"external_modules.txt that contain the list of Puppet modules we rely to"},{"line_number":12,"context_line":"run our CI. It will build a Puppetfile by using master for Puppet"},{"line_number":13,"context_line":"OpenStack modules and the latest tag for external modules."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"* Remove Puppetfile, that is not useful anymore since it\u0027s generated."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Run the script everytime our CI needs to install modules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a061dce_e3367db3","line":14,"updated":"2016-04-04 10:38:40.000000000","message":"what is general purpose of this? What\u0027s difference between existed puppetfile and created?","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e98bca02abf817a017e3db48376bd4c8b52cc434","unresolved":false,"context_lines":[{"line_number":11,"context_line":"external_modules.txt that contain the list of Puppet modules we rely to"},{"line_number":12,"context_line":"run our CI. It will build a Puppetfile by using master for Puppet"},{"line_number":13,"context_line":"OpenStack modules and the latest tag for external modules."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"* Remove Puppetfile, that is not useful anymore since it\u0027s generated."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Run the script everytime our CI needs to install modules."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a061dce_8874eccf","line":14,"in_reply_to":"9a061dce_e3367db3","updated":"2016-04-04 15:37:18.000000000","message":"The purpose is very simple: stop managing the Puppetfile manually, and try to use latest releases when we can, and when we can\u0027t, allow to pin modules to a specific release that we know it works.\nIt\u0027s a CI approach: fail fast, fix fast.","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"}],"Puppetfile":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d64dfa500daadb4929c9bf50bd16d4c7a376dbb6","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  :git \u003d\u003e \u0027https://git.openstack.org/openstack/puppet-trove\u0027,"},{"line_number":109,"context_line":"  :ref \u003d\u003e \u0027master\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"mod \u0027tuskar\u0027,"},{"line_number":112,"context_line":"  :git \u003d\u003e \u0027https://git.openstack.org/openstack/puppet-tuskar\u0027,"},{"line_number":113,"context_line":"  :ref \u003d\u003e \u0027master\u0027"},{"line_number":114,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":10,"id":"9a061dce_662b7731","side":"PARENT","line":111,"updated":"2016-04-04 22:19:56.000000000","message":"tuskar is dead fyi, we don\u0027t need it anymore","commit_id":"4a3ca2bf4069a27f81e8d30d548026e8266e13c1"}],"external_modules.txt":[{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"745633b673dab5109ccd0e7f5ed4ecf5d6048c43","unresolved":false,"context_lines":[{"line_number":1,"context_line":"antonlindstrom/puppet-powerdns"},{"line_number":2,"context_line":"dprince/puppet-qpid"},{"line_number":3,"context_line":"duritong/puppet-sysctl"},{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"}],"source_content_type":"text/plain","patch_set":8,"id":"9a061dce_4022bfba","line":2,"updated":"2016-04-04 10:38:40.000000000","message":"we don\u0027t use qpid anymore","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"431d7d131e04f85d54bf9ef59dd30b647034803c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"antonlindstrom/puppet-powerdns"},{"line_number":2,"context_line":"dprince/puppet-qpid"},{"line_number":3,"context_line":"duritong/puppet-sysctl"},{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"}],"source_content_type":"text/plain","patch_set":8,"id":"9a061dce_a37e38ac","line":2,"in_reply_to":"9a061dce_4022bfba","updated":"2016-04-04 14:38:16.000000000","message":"I think it\u0027s required as a dependency for something even though we don\u0027t use it. But yea if we don\u0027t need it we should pull it from the list if possible","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"745633b673dab5109ccd0e7f5ed4ecf5d6048c43","unresolved":false,"context_lines":[{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"},{"line_number":6,"context_line":"puppetlabs/puppetlabs-apache"},{"line_number":7,"context_line":"puppetlabs/puppetlabs-apt"},{"line_number":8,"context_line":"puppetlabs/puppetlabs-concat,1.2.5"},{"line_number":9,"context_line":"puppetlabs/puppetlabs-firewall"},{"line_number":10,"context_line":"puppetlabs/puppetlabs-inifile"}],"source_content_type":"text/plain","patch_set":8,"id":"9a061dce_8348615d","line":7,"updated":"2016-04-04 10:38:40.000000000","message":"why you missed pins for all another modules?","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"431d7d131e04f85d54bf9ef59dd30b647034803c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"},{"line_number":6,"context_line":"puppetlabs/puppetlabs-apache"},{"line_number":7,"context_line":"puppetlabs/puppetlabs-apt"},{"line_number":8,"context_line":"puppetlabs/puppetlabs-concat,1.2.5"},{"line_number":9,"context_line":"puppetlabs/puppetlabs-firewall"},{"line_number":10,"context_line":"puppetlabs/puppetlabs-inifile"}],"source_content_type":"text/plain","patch_set":8,"id":"9a061dce_83b0548d","line":7,"in_reply_to":"9a061dce_8348615d","updated":"2016-04-04 14:38:16.000000000","message":"I think the point is to optionally pin only if the latest breaks something","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e98bca02abf817a017e3db48376bd4c8b52cc434","unresolved":false,"context_lines":[{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"},{"line_number":6,"context_line":"puppetlabs/puppetlabs-apache"},{"line_number":7,"context_line":"puppetlabs/puppetlabs-apt"},{"line_number":8,"context_line":"puppetlabs/puppetlabs-concat,1.2.5"},{"line_number":9,"context_line":"puppetlabs/puppetlabs-firewall"},{"line_number":10,"context_line":"puppetlabs/puppetlabs-inifile"}],"source_content_type":"text/plain","patch_set":8,"id":"9a061dce_a82570c3","line":7,"in_reply_to":"9a061dce_83b0548d","updated":"2016-04-04 15:37:18.000000000","message":"exactly, latest release is not working, and this patch was useful to see it. It means we need to either fix puppetlabs-concat or update puppet-swift and puppet-horizon.","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"481feb34d2b07e8141289f1d656580d7a5f502d0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"antonlindstrom/puppet-powerdns"},{"line_number":2,"context_line":"dprince/puppet-qpid"},{"line_number":3,"context_line":"duritong/puppet-sysctl"},{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"}],"source_content_type":"text/plain","patch_set":10,"id":"9a061dce_1c3bcc9d","line":2,"updated":"2016-04-05 12:49:13.000000000","message":"is this module still used?","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"0182852dfc91f5803ac19f6268c7c850e3f8df08","unresolved":false,"context_lines":[{"line_number":1,"context_line":"antonlindstrom/puppet-powerdns"},{"line_number":2,"context_line":"dprince/puppet-qpid"},{"line_number":3,"context_line":"duritong/puppet-sysctl"},{"line_number":4,"context_line":"nanliu/puppet-staging"},{"line_number":5,"context_line":"puppet-community/puppet-corosync"}],"source_content_type":"text/plain","patch_set":10,"id":"9a061dce_103208a7","line":2,"updated":"2016-04-07 14:06:38.000000000","message":"ok I\u0027ll drop it in next patchset","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"}],"generate_puppetfile.sh":[{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"745633b673dab5109ccd0e7f5ed4ecf5d6048c43","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":32,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":33,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":34,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":35,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":36,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":37,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"},{"line_number":38,"context_line":"            tag\u003d$pin"},{"line_number":39,"context_line":"        else"},{"line_number":40,"context_line":"            echo \"Wrong pin: $pin does not exist in $module module.\""},{"line_number":41,"context_line":"            exit 1"},{"line_number":42,"context_line":"        fi"},{"line_number":43,"context_line":"    else"},{"line_number":44,"context_line":"      tag\u003d$(cd modules/$module; git describe --tags $(git rev-list --tags --max-count\u003d1))"},{"line_number":45,"context_line":"    fi"},{"line_number":46,"context_line":"    rm -rf modules/$module"},{"line_number":47,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"},{"line_number":48,"context_line":"mod \u0027$title\u0027,"},{"line_number":49,"context_line":"  :git \u003d\u003e \u0027https://github.com/$namespace/$module\u0027,"}],"source_content_type":"text/x-sh","patch_set":8,"id":"9a061dce_63af0de4","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":26},"updated":"2016-04-04 10:38:40.000000000","message":"not sure that we need check it from this script.\n\nNow we have pins in puppetfile and we don\u0027t check them. Why we need it here?","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e5a9653769abdbda695f8b4e92fd7a664d6608ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":32,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":33,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":34,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":35,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":36,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":37,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"},{"line_number":38,"context_line":"            tag\u003d$pin"},{"line_number":39,"context_line":"        else"},{"line_number":40,"context_line":"            echo \"Wrong pin: $pin does not exist in $module module.\""},{"line_number":41,"context_line":"            exit 1"},{"line_number":42,"context_line":"        fi"},{"line_number":43,"context_line":"    else"},{"line_number":44,"context_line":"      tag\u003d$(cd modules/$module; git describe --tags $(git rev-list --tags --max-count\u003d1))"},{"line_number":45,"context_line":"    fi"},{"line_number":46,"context_line":"    rm -rf modules/$module"},{"line_number":47,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"},{"line_number":48,"context_line":"mod \u0027$title\u0027,"},{"line_number":49,"context_line":"  :git \u003d\u003e \u0027https://github.com/$namespace/$module\u0027,"}],"source_content_type":"text/x-sh","patch_set":8,"id":"9a061dce_6b20729c","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":26},"in_reply_to":"9a061dce_63af0de4","updated":"2016-04-04 15:38:46.000000000","message":"checking pins will be useful for debug.\nIf you try to pin a module to a tag that does not exist, our logs will say it.","commit_id":"f3cf384069036b6a892fbcad4b1e10c4306345f3"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ec28a006e2fcd6a117e0282ced3144c261da2c7d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":33,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":34,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":35,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":36,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":37,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":38,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_e11ad16d","line":35,"updated":"2016-04-04 22:54:18.000000000","message":"Instead of cloning, you can just us ls-remote.  To check for a tag, you can do...\n\n  git ls-remote --exit-code \u003curl\u003e \u003ctag\u003e\n\nwhich will return 2 if the tag is non-existent.  This will save a bunch of time (and bandwidth)","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"0182852dfc91f5803ac19f6268c7c850e3f8df08","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":33,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":34,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":35,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":36,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":37,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":38,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_7025445a","line":35,"updated":"2016-04-07 14:06:38.000000000","message":"done!","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ae21d7eddbf61af78755af27903e51eabcb379a3","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":33,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":34,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":35,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":36,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":37,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":38,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_2e2671ce","line":35,"in_reply_to":"9a061dce_05f710d4","updated":"2016-04-05 02:32:53.000000000","message":"Yea i guess the determination of the newest tag is the hard part with the remote stuff.  I just see this adding to the job\n\nif [ ! -z \"${pin}\" ]; then\n  if [ ${git ls-remote --exit-code https://github.com/$namespace/$module $pin \u003d\u003d 2 ]; then\n    echo \"bad $pin\"\n    exit\n  else\n    tag\u003d$pin\n  fi\nelse\n  tag\u003d(would have to see if there\u0027s a remote alternative for this)\nfi","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"481feb34d2b07e8141289f1d656580d7a5f502d0","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":33,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":34,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":35,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":36,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":37,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":38,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_7cb5a8ec","line":35,"in_reply_to":"9a061dce_2e2671ce","updated":"2016-04-05 12:49:13.000000000","message":"+1 to Alex","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"dfc6acf353046031b4f1d12477535587ea90ece6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    module\u003d$(echo $e | awk -F\u0027/\u0027 \u0027{print $2}\u0027 | cut -d \",\" -f 1)"},{"line_number":33,"context_line":"    title\u003d$(echo $module | awk -F\u0027/\u0027 \u0027{print $1}\u0027 | cut -d \"-\" -f 2)"},{"line_number":34,"context_line":"    pin\u003d$(echo $e | grep \",\" | cut -d \",\" -f 2)"},{"line_number":35,"context_line":"    git clone https://github.com/$namespace/$module modules/$module"},{"line_number":36,"context_line":"    if [ ! -z \"$pin\" ]; then"},{"line_number":37,"context_line":"        tags\u003d$(cd modules/$module; git tag)"},{"line_number":38,"context_line":"        if [[ $tags \u003d~ $pin ]]; then"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_05f710d4","line":35,"in_reply_to":"9a061dce_e11ad16d","updated":"2016-04-04 23:37:34.000000000","message":"well, you still need a way to list the tags, and in bash I\u0027m not sure we can skip the git clone.","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ec28a006e2fcd6a117e0282ced3144c261da2c7d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            exit 1"},{"line_number":43,"context_line":"        fi"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"      tag\u003d$(cd modules/$module; git describe --tags $(git rev-list --tags --max-count\u003d1))"},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":"    rm -rf modules/$module"},{"line_number":48,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_c13a2dcd","line":45,"updated":"2016-04-04 22:54:18.000000000","message":"So this will always use the latest tag so this wouldn\u0027t reference master anymore by default. Is that what we want?","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"dfc6acf353046031b4f1d12477535587ea90ece6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            exit 1"},{"line_number":43,"context_line":"        fi"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"      tag\u003d$(cd modules/$module; git describe --tags $(git rev-list --tags --max-count\u003d1))"},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":"    rm -rf modules/$module"},{"line_number":48,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_651b6c1c","line":45,"in_reply_to":"9a061dce_c13a2dcd","updated":"2016-04-04 23:37:34.000000000","message":"no, we had so many troubles using master in the past, I think using latest release is safe enough, and still keep us updated.","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"c5ced428b57f06a8d0b60ee6bccfb2947b901b3d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"},{"line_number":49,"context_line":"mod \u0027$title\u0027,"},{"line_number":50,"context_line":"  :git \u003d\u003e \u0027https://github.com/$namespace/$module\u0027,"},{"line_number":51,"context_line":"  :tag \u003d\u003e \u0027$tag\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"EOF"},{"line_number":54,"context_line":"done"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_4188dd22","line":51,"updated":"2016-04-04 22:59:12.000000000","message":"I think since :ref works with branch/tag/sha1, should we use that instead?","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"dfc6acf353046031b4f1d12477535587ea90ece6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cat \u003e\u003e Puppetfile \u003c\u003cEOF"},{"line_number":49,"context_line":"mod \u0027$title\u0027,"},{"line_number":50,"context_line":"  :git \u003d\u003e \u0027https://github.com/$namespace/$module\u0027,"},{"line_number":51,"context_line":"  :tag \u003d\u003e \u0027$tag\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"EOF"},{"line_number":54,"context_line":"done"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a061dce_85d84055","line":51,"in_reply_to":"9a061dce_4188dd22","updated":"2016-04-04 23:37:34.000000000","message":"yes, we can do that.","commit_id":"9f9656872a3cf93e2572bf10c002727bae096797"}]}
