)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e3190cd7746db09de5bb7abe2bdb33ab33fc4ddc","unresolved":false,"context_lines":[{"line_number":480,"context_line":"IRONIC_DEPLOY_FAST_TRACK\u003d${IRONIC_DEPLOY_FAST_TRACK:-False}"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"# Agent Token requirement"},{"line_number":483,"context_line":"IRONIC_REQUIRE_AGENT_TOKEN\u003d${IRONIC_REQUIRE_AGENT_TOKEN:-False}"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"# Define baremetal min_microversion in tempest config. Default value None is picked from tempest."},{"line_number":486,"context_line":"TEMPEST_BAREMETAL_MIN_MICROVERSION\u003d${TEMPEST_BAREMETAL_MIN_MICROVERSION:-}"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"3fa7e38b_70284b84","line":483,"updated":"2020-02-10 12:08:29.000000000","message":"Let\u0027s set it to True for everything except for grenade.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":480,"context_line":"IRONIC_DEPLOY_FAST_TRACK\u003d${IRONIC_DEPLOY_FAST_TRACK:-False}"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"# Agent Token requirement"},{"line_number":483,"context_line":"IRONIC_REQUIRE_AGENT_TOKEN\u003d${IRONIC_REQUIRE_AGENT_TOKEN:-True}"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"# Define baremetal min_microversion in tempest config. Default value None is picked from tempest."},{"line_number":486,"context_line":"TEMPEST_BAREMETAL_MIN_MICROVERSION\u003d${TEMPEST_BAREMETAL_MIN_MICROVERSION:-}"}],"source_content_type":"application/x-shellscript","patch_set":24,"id":"df33271e_edfeb536","line":483,"updated":"2020-03-25 15:00:49.000000000","message":"nit: use the trueorfalse call","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"}],"doc/source/admin/agent-token.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e3190cd7746db09de5bb7abe2bdb33ab33fc4ddc","unresolved":false,"context_lines":[{"line_number":11,"context_line":"relationship between an operating deployment of the Bare Metal Service"},{"line_number":12,"context_line":"and an instance of the ``ironic-python-agent`` is verified. In a sense,"},{"line_number":13,"context_line":"this token can be viewed as a session identifier or authentication token."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This becomes useful in the case of deploying an \"edge\" node where intermediate"},{"line_number":16,"context_line":"networks are not trustworthy."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_f033dbf5","line":14,"updated":"2020-02-10 12:08:29.000000000","message":"Let\u0027s have a .. warning:: that it\u0027s not secure from Man-in-the-Middle attacks.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c5b47c085bebad7ee6160672e4e4ed8e30933d02","unresolved":false,"context_lines":[{"line_number":11,"context_line":"relationship between an operating deployment of the Bare Metal Service"},{"line_number":12,"context_line":"and an instance of the ``ironic-python-agent`` is verified. In a sense,"},{"line_number":13,"context_line":"this token can be viewed as a session identifier or authentication token."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This becomes useful in the case of deploying an \"edge\" node where intermediate"},{"line_number":16,"context_line":"networks are not trustworthy."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_a761a03a","line":14,"in_reply_to":"3fa7e38b_f033dbf5","updated":"2020-02-11 18:40:57.000000000","message":"keeping it a little generic, but added.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e3190cd7746db09de5bb7abe2bdb33ab33fc4ddc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      default_note_color \u003d white;"},{"line_number":66,"context_line":"      default_fontsize \u003d 14;"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      Conductor -\u003e Conductor [label \u003d \"Ggenerates a random token\"];"},{"line_number":69,"context_line":"      Conductor -\u003e Conductor [label \u003d \"Generates configuration for IPA ramdisk\"];"},{"line_number":70,"context_line":"      Conductor -\u003e Swift [label \u003d \"IPA image, with configuration is uploaded\"];"},{"line_number":71,"context_line":"      Conductor -\u003e Baremetal [label \u003d \"Attach IPA virtual media in Swift as virtual CD\"];"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_5048af60","line":68,"range":{"start_line":68,"start_character":39,"end_line":68,"end_character":41},"updated":"2020-02-10 12:08:29.000000000","message":"nit: s/Gg/G/","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"These tokens are provided in one of two ways to the running agent."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"1. A pre-generated token which is embedded into virtual media ISOs."},{"line_number":29,"context_line":"2. A one-time generated token that are provided upon the first \"lookup\""},{"line_number":30,"context_line":"   of the node."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In both cases, the tokens are a randomly generated length of 128 characters."}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_edd515b9","line":29,"updated":"2020-03-25 15:00:49.000000000","message":"nit: make lookup an api-ref link","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"2. A one-time generated token that are provided upon the first \"lookup\""},{"line_number":30,"context_line":"   of the node."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In both cases, the tokens are a randomly generated length of 128 characters."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Once the token has been provided, the token cannot be retrieved or accessed."},{"line_number":35,"context_line":"It remains available to the conductors, and is stored in memory of the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_4de521a8","line":32,"updated":"2020-03-25 15:00:49.000000000","message":"no longer 128","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"In both cases, the tokens are a randomly generated length of 128 characters."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Once the token has been provided, the token cannot be retrieved or accessed."},{"line_number":35,"context_line":"It remains available to the conductors, and is stored in memory of the"},{"line_number":36,"context_line":"``ironic-python-agent``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_2de09d96","line":34,"updated":"2020-03-25 15:00:49.000000000","message":"nit: second \"the token\" to \"it\"?","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":38,"context_line":".. note::"},{"line_number":39,"context_line":"   In the case of the token being embedded with virtual media, it is read"},{"line_number":40,"context_line":"   from a configuration file with-in the image. Ideally this should be paired"},{"line_number":41,"context_line":"   with Swift temporary URLs."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"With the token is available in memory in the agent, the token is embedded with"},{"line_number":44,"context_line":"``heartbeat`` operations to the ironic API endpoint. This enables the API to"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_8df0c969","line":41,"updated":"2020-03-25 15:00:49.000000000","message":"The last sentence may be unclear. Add \"instead of serving virtual media from a static HTTP location\"?","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"   with Swift temporary URLs."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"With the token is available in memory in the agent, the token is embedded with"},{"line_number":44,"context_line":"``heartbeat`` operations to the ironic API endpoint. This enables the API to"},{"line_number":45,"context_line":"authenticate the heartbeat request, and refuse \"heartbeat\" requests from the"},{"line_number":46,"context_line":"``ironic-python-agent``. With the ``Ussuri`` release, the confiuration option"},{"line_number":47,"context_line":"``[DEFAULT]require_agent_token`` can be set ``True`` to explicitly require"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_6df3c574","line":44,"updated":"2020-03-25 15:00:49.000000000","message":"nit: s/ironic/bare metal/, make heartbeat a link","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"With the token is available in memory in the agent, the token is embedded with"},{"line_number":44,"context_line":"``heartbeat`` operations to the ironic API endpoint. This enables the API to"},{"line_number":45,"context_line":"authenticate the heartbeat request, and refuse \"heartbeat\" requests from the"},{"line_number":46,"context_line":"``ironic-python-agent``. With the ``Ussuri`` release, the confiuration option"},{"line_number":47,"context_line":"``[DEFAULT]require_agent_token`` can be set ``True`` to explicitly require"},{"line_number":48,"context_line":"token use."}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_cdead173","line":45,"updated":"2020-03-25 15:00:49.000000000","message":"nit: ``heartbeat``","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"authenticate the heartbeat request, and refuse \"heartbeat\" requests from the"},{"line_number":46,"context_line":"``ironic-python-agent``. With the ``Ussuri`` release, the confiuration option"},{"line_number":47,"context_line":"``[DEFAULT]require_agent_token`` can be set ``True`` to explicitly require"},{"line_number":48,"context_line":"token use."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. warning::"},{"line_number":51,"context_line":"   If the Bare Metal Service is updated, and the version of"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_adedcd8c","line":48,"updated":"2020-03-25 15:00:49.000000000","message":"Mention that we\u0027re going to default to using tokens in the future?","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"token use."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. warning::"},{"line_number":51,"context_line":"   If the Bare Metal Service is updated, and the version of"},{"line_number":52,"context_line":"   ``ironic-python-agent`` should be updated to enable this feature."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"In addition to heartbeats being verified, commands from the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_0d04b949","line":51,"updated":"2020-03-25 15:00:49.000000000","message":"nit: s/and// ?","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"41e555bfe400ed8c767860f88d8bd817f581e124","unresolved":false,"context_lines":[{"line_number":48,"context_line":"token use."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. warning::"},{"line_number":51,"context_line":"   If the Bare Metal Service is updated, and the version of"},{"line_number":52,"context_line":"   ``ironic-python-agent`` should be updated to enable this feature."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"In addition to heartbeats being verified, commands from the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_40c6519c","line":51,"range":{"start_line":51,"start_character":3,"end_line":51,"end_character":41},"updated":"2020-03-28 07:12:47.000000000","message":"this seems redundant, there is no such option at all if ironic is not upgraded.","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"41e555bfe400ed8c767860f88d8bd817f581e124","unresolved":false,"context_lines":[{"line_number":63,"context_line":"   :scale: 80"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"   diagram {"},{"line_number":66,"context_line":"      API; Conductor; Baremetal; Swift; IPA;"},{"line_number":67,"context_line":"      activation \u003d none;"},{"line_number":68,"context_line":"      span_height \u003d 1;"},{"line_number":69,"context_line":"      edge_length \u003d 250;"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_8055f9c8","line":66,"range":{"start_line":66,"start_character":22,"end_line":66,"end_character":39},"updated":"2020-03-28 07:12:47.000000000","message":"from the generated diagram, I feel switching the position of baremetal and swift seems offering a better looking.","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"41e555bfe400ed8c767860f88d8bd817f581e124","unresolved":false,"context_lines":[{"line_number":91,"context_line":"   :scale: 80"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"   diagram {"},{"line_number":94,"context_line":"      API; Conductor; Baremetal; iPXE; IPA;"},{"line_number":95,"context_line":"      activation \u003d none;"},{"line_number":96,"context_line":"      span_height \u003d 1;"},{"line_number":97,"context_line":"      edge_length \u003d 250;"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_c060a1a8","line":94,"range":{"start_line":94,"start_character":22,"end_line":94,"end_character":38},"updated":"2020-03-28 07:12:47.000000000","message":"ditto as above.","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"}],"doc/source/admin/index.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e3190cd7746db09de5bb7abe2bdb33ab33fc4ddc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"   Windows Images \u003cbuilding-windows-images\u003e"},{"line_number":33,"context_line":"   Troubleshooting FAQ \u003ctroubleshooting\u003e"},{"line_number":34,"context_line":"   Power Sync with the Compute Service \u003cpower-sync\u003e"},{"line_number":35,"context_line":"   Agent Token \u003cagent-token\u003e"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. toctree::"},{"line_number":38,"context_line":"  :hidden:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_50718faa","line":35,"updated":"2020-02-10 12:08:29.000000000","message":"I wonder if it should go to the user guide since there\u0027s not much an admin should do about it..","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c5b47c085bebad7ee6160672e4e4ed8e30933d02","unresolved":false,"context_lines":[{"line_number":32,"context_line":"   Windows Images \u003cbuilding-windows-images\u003e"},{"line_number":33,"context_line":"   Troubleshooting FAQ \u003ctroubleshooting\u003e"},{"line_number":34,"context_line":"   Power Sync with the Compute Service \u003cpower-sync\u003e"},{"line_number":35,"context_line":"   Agent Token \u003cagent-token\u003e"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. toctree::"},{"line_number":38,"context_line":"  :hidden:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_47522c6c","line":35,"in_reply_to":"3fa7e38b_50718faa","updated":"2020-02-11 18:40:57.000000000","message":"maybe cross-reference?  If it breaks, surely an admin will be looking at it?!?\n\nUsers also can\u0027t do anything except get ramdisks updated.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"   Windows Images \u003cbuilding-windows-images\u003e"},{"line_number":33,"context_line":"   Troubleshooting FAQ \u003ctroubleshooting\u003e"},{"line_number":34,"context_line":"   Power Sync with the Compute Service \u003cpower-sync\u003e"},{"line_number":35,"context_line":"   Agent Token \u003cagent-token\u003e"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. toctree::"},{"line_number":38,"context_line":"  :hidden:"}],"source_content_type":"text/x-rst","patch_set":24,"id":"df33271e_add4adbe","line":35,"updated":"2020-03-25 15:00:49.000000000","message":"Maybe add it inside of security?","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"}],"releasenotes/notes/agent-token-support-0a5b5aa1585dfbb5.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ead0b42623dc7bd80ec4497554a33c62500e81d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support of ``agent token`` which serves as a mechanism to secure"},{"line_number":5,"context_line":"    the normally unauthenticated API endpoints in ironic which are used in"},{"line_number":6,"context_line":"    the mechanics of baremetal provisioning. This feature is optional, however"},{"line_number":7,"context_line":"    operators may require this feature by changing the"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"df33271e_0ddb19ed","line":4,"updated":"2020-03-25 15:00:49.000000000","message":"nit: replace double ticks with single or *..*","commit_id":"deca07de3c9ca5ff900a2375979291c241eab099"}],"zuul.d/ironic-jobs.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e3190cd7746db09de5bb7abe2bdb33ab33fc4ddc","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images"},{"line_number":120,"context_line":"        SWIFT_ENABLE_TEMPURLS: True"},{"line_number":121,"context_line":"        SWIFT_TEMPURL_KEY: secretkey"},{"line_number":122,"context_line":"        # TODO(TheJulia): Remove this once we\u0027re happy with agent tokens."},{"line_number":123,"context_line":"        IRONIC_BUILD_DEPLOY_RAMDISK: True"},{"line_number":124,"context_line":"      devstack_services:"},{"line_number":125,"context_line":"        n-api: False"},{"line_number":126,"context_line":"        n-api-meta: False"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_30a173f7","line":123,"range":{"start_line":122,"start_character":0,"end_line":123,"end_character":41},"updated":"2020-02-10 12:08:29.000000000","message":"To be removed before merging.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c5b47c085bebad7ee6160672e4e4ed8e30933d02","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images"},{"line_number":120,"context_line":"        SWIFT_ENABLE_TEMPURLS: True"},{"line_number":121,"context_line":"        SWIFT_TEMPURL_KEY: secretkey"},{"line_number":122,"context_line":"        # TODO(TheJulia): Remove this once we\u0027re happy with agent tokens."},{"line_number":123,"context_line":"        IRONIC_BUILD_DEPLOY_RAMDISK: True"},{"line_number":124,"context_line":"      devstack_services:"},{"line_number":125,"context_line":"        n-api: False"},{"line_number":126,"context_line":"        n-api-meta: False"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_67096881","line":123,"range":{"start_line":122,"start_character":0,"end_line":123,"end_character":41},"in_reply_to":"3fa7e38b_30a173f7","updated":"2020-02-11 18:40:57.000000000","message":"Doing so, not all of our jobs build a ramdisk, so this won\u0027t pass until it is merged and out there.","commit_id":"1b7f88824eceeb3345116a67803b0d26fa35fe55"}]}
