{"push_id":816212185,"size":5,"distinct_size":5,"ref":"refs/heads/master","head":"8aa6a5ce5bcd6f6e44890f6ad2f38a406d6570fd","before":"741d6dd86dff5632eddd53707c04c06803714079","commits":[{"sha":"34bf596fd9cabb0fbcc2f6afd7fa9c457b333dff","author":{"email":"841c5402b19d868fc3e4a029890d026af66bfc22@squareup.com","name":"tummychow"},"message":"Fix RC_TREE value\n\nThe trailing 's' was accidentally removed in 056f790.","distinct":true,"url":"https://api.github.com/repos/square/p2/commits/34bf596fd9cabb0fbcc2f6afd7fa9c457b333dff"},{"sha":"03c60da7e2cc38315b6b95b7697c5522602d539d","author":{"email":"841c5402b19d868fc3e4a029890d026af66bfc22@squareup.com","name":"tummychow"},"message":"Use \"check\" rather than \"compare\" in CAS\n\nThe terminology used by consul happens to be \"check-and-set\", so we\nshould be consistent.","distinct":true,"url":"https://api.github.com/repos/square/p2/commits/03c60da7e2cc38315b6b95b7697c5522602d539d"},{"sha":"b9d9570f2337ea810301409109677aff4eb7a095","author":{"email":"841c5402b19d868fc3e4a029890d026af66bfc22@squareup.com","name":"tummychow"},"message":"RC.Id -> RC.ID\n\nMore consistent capitalization of \"ID\" across the board in all our\npackages.","distinct":true,"url":"https://api.github.com/repos/square/p2/commits/b9d9570f2337ea810301409109677aff4eb7a095"},{"sha":"f915cd7e9ef290f72a149c346b6d1691e94d7afb","author":{"email":"841c5402b19d868fc3e4a029890d026af66bfc22@squareup.com","name":"tummychow"},"message":"Store a replication controller in a single key\n\nWe were storing a replication controller as a tree of keys under its id,\none for each field. This approach makes it very easy to mutate fields of\nthe RC. However, it has a nasty side effect: adding a new RC key-by-key\nwill trigger watchers before the RC is complete. As a result, the watch\nwill read a partial RC with some of its fields missing.\n\nTo avoid this partial-read issue, we use the same approach as the consul\nlabel applicator - the entire RC is a single JSON blob that uses CAS\noperations to safely update individual fields.\n\nUnmarshaling an RC from JSON presents its own problems, since two of the\nfields are interfaces, and unmarshaling a non-JSON-null into a nil\ninterface is impossible. We have to provide implementations of the json\nMarshaler/Unmarshaler interfaces for this purpose.","distinct":true,"url":"https://api.github.com/repos/square/p2/commits/f915cd7e9ef290f72a149c346b6d1691e94d7afb"},{"sha":"8aa6a5ce5bcd6f6e44890f6ad2f38a406d6570fd","author":{"email":"3802270a32cf21da17bd7cce9620c65c038f2f2f@users.noreply.github.com","name":"Stephen Jung"},"message":"Merge pull request #280 from tummychow/orch-refacs-2","distinct":true,"url":"https://api.github.com/repos/square/p2/commits/8aa6a5ce5bcd6f6e44890f6ad2f38a406d6570fd"}]}