{"push_id":1418017799,"size":1,"distinct_size":1,"ref":"refs/heads/tunnel-collection-exit-stack","head":"efc4af5da855114641167d9d6636331a946aa37d","before":"c0f557e618da3a91c33e5f036542eeaffebd2a9b","commits":[{"sha":"efc4af5da855114641167d9d6636331a946aa37d","author":{"name":"Cody Maloney","email":"7e9fd717623d5c1ae8b16d280e7174a66cf3cec7@mesosphere.io"},"message":"Update / rewrite ssh.Tunnel, TunnelCollection\n\n - TunnelCollection is replaced with a contextlib.ExitStack, so it has less code.\n - Tunnel class is replaced with a \"contextmanager\" function that yields a\n   Tunneled object, which provides the same interface that `with Tunnel` did.\n\nThe tunnel contextmanager function makes it harder to use the tunnels incorrectly\nas the tunnel is only accessible inside the contextmanager / when the\ncontextmanager has been entered. The \"Tunneled\" class only has the simple API /\nbehavior people expect to work on things which are tunneled to.\n\nMoving TunnelCollection to be the tunnel_collection function makes it so we're\nno longer having to access `tunnels.tunnels` in order to get the tunnels.","distinct":true,"url":"https://api.github.com/repos/cmaloney/dcos/commits/efc4af5da855114641167d9d6636331a946aa37d"}]}
{"actor":{"display_login":"cmaloney"}}