{"push_id":874599193,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"9e9dfadcff44704e26147793af540b87749bc9e8","before":"dc8172cec60a8eaa36ff6ca1176213d9afb659f4","commits":[{"sha":"383136703bfa92883495e1cf4135ba810cbee397","author":{"email":"4ab6c480586ad1de9ddbd1eae2bcb19f6602ac5a@gmail.com","name":"lubaochuan"},"message":"finish step 4: identify where state should live","distinct":true,"url":"https://api.github.com/repos/lubaochuan/react_examples/commits/383136703bfa92883495e1cf4135ba810cbee397"},{"sha":"11c7edc32dd2e42969bab82298357a20b164d1b9","author":{"email":"4ab6c480586ad1de9ddbd1eae2bcb19f6602ac5a@gmail.com","name":"lubaochuan"},"message":"finish step 5: add inverse data flow","distinct":true,"url":"https://api.github.com/repos/lubaochuan/react_examples/commits/11c7edc32dd2e42969bab82298357a20b164d1b9"},{"sha":"9e9dfadcff44704e26147793af540b87749bc9e8","author":{"email":"4ab6c480586ad1de9ddbd1eae2bcb19f6602ac5a@gmail.com","name":"lubaochuan"},"message":"add table border","distinct":true,"url":"https://api.github.com/repos/lubaochuan/react_examples/commits/9e9dfadcff44704e26147793af540b87749bc9e8"}]}