{"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45","forks_url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/forks","commits_url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/commits","id":"e302a4a8450ca28cbd51f56968157e45","node_id":"MDQ6R2lzdGUzMDJhNGE4NDUwY2EyOGNiZDUxZjU2OTY4MTU3ZTQ1","git_pull_url":"https://gist.github.com/e302a4a8450ca28cbd51f56968157e45.git","git_push_url":"https://gist.github.com/e302a4a8450ca28cbd51f56968157e45.git","html_url":"https://gist.github.com/michaellihs/e302a4a8450ca28cbd51f56968157e45","files":{"consumer-driven-contracts.md":{"filename":"consumer-driven-contracts.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/michaellihs/e302a4a8450ca28cbd51f56968157e45/raw/1769674b3cb80340452bc83a03e9fc4d6f498234/consumer-driven-contracts.md","size":4602,"truncated":false,"content":"Consumer Driven Contracts - a curated list\n==========================================\n\n\nBlog Posts\n----------\n\n* [Martin Fowler: \"Consumer-Driven Contracts: A Service Evolution Pattern\" (2006)](https://martinfowler.com/articles/consumerDrivenContracts.html)\n* [Novatec: \"Consumer Driven Contracts with Spring Cloud Contract\" (2017)](https://blog.novatec-gmbh.de/consumer-driven-contract-testing-spring-cloud-contract/)\n* [Novatec: \"Introduction to Microservices Testing and Consumer Driven Contract Testing with PACT\" (2017)](https://blog.novatec-gmbh.de/introduction-microservices-testing-consumer-driven-contract-testing-pact/) \n* [Tom Hombergs: 7 Reasons to Choose Consumer-Driven Contract Tests Over End-to-End Tests (2017)](https://reflectoring.io/7-reasons-for-consumer-driven-contracts/)\n* [Q&A with Marcin Grzejszczak on Spring Cloud Contract](https://www.infoq.com/news/2017/04/spring-cloud-contract)\n* [Consumer Driven Contracts with Jackal](http://tech.findmypast.com/jackal-consumer-driven-contract-testing/)\n* [Testing interactions with web services without integration tests in Ruby](http://rea.tech/testing-interactions-with-web-services-without-integration-tests-in-ruby/)\n* [Application Pattern: Consumer Driven Contracts](https://www.continuousdeliveryconsulting.com/blog/application-pattern-consumer-driven-contracts/)\n* [Simplifying Micro-Service testing with Pacts](https://dius.com.au/2014/05/19/simplifying-micro-service-testing-with-pacts/)\n* [Stackoverflow: BDD vs. DbC](https://stackoverflow.com/questions/481312/why-is-design-by-contract-not-so-popular-compared-to-test-driven-development)\n* [ThoughtWorks Technology Radar on Consumer Driven Contract Testing](https://www.thoughtworks.com/de/radar/techniques/consumer-driven-contract-testing)\n* [Scalable Integration Testing for Microservices Deployments (2017)](https://medium.com/nmc-techblog/scalable-integration-testing-for-microservices-deployments-e03e29dd1280)\n* [Service Design Patterns: Consumer-Driven Contracts](http://servicedesignpatterns.com/WebServiceEvolution/ConsumerDrivenContracts)\n\n\nSlides\n------\n\n* [Consumer Driven Contracts and your Microservice Architecture](https://www.slideshare.net/MarcinGrzejszczak/consumer-driven-contracts-and-your-microservice-architecture-83680416)\n* [BDD-Driven Microservices](https://www.slideshare.net/wakaleo/bdddriven-microservices)\n* [Marcin Grzejszczak, Adib Saikali: Consumer Driven Contract Workshops (2017)](https://docs.google.com/presentation/d/1xvzdV0julkKwTz2R5Z8Ra8jYRjBy0qfhPbcKEFjaa8M/edit#slide=id.g1f5c64566b_0_0)\n* [Marcin Grzejszczak: Consumer Driven Contracts To Enable API Evolution (2017)](https://www.slideshare.net/MarcinGrzejszczak/consumer-driven-contracts-to-enable-api-evolution-geecon)\n* [Pacts to the rescue (2015)](https://www.slideshare.net/bethesque/pact-44565612)\n\n\n\nVideos\n------\n\n* [Consumer Driven Contracts with Spring Cloud Contract (2017)](https://www.youtube.com/watch?v=iyNzYOcuU4I)\n* [Marcin Grzejszczak, Adib Saikali: Consumer Driven Contracts and Your Microservice Architecture (2017)](https://youtu.be/JEmpIDiX7LU)\n* [Verifying Microservice Integrations with Contract Testing - Atlassian Summit 2016](https://www.youtube.com/watch?v=-6x6XBDf9sQ)\n* [Pact by Ronald Holshausen (2016)](https://www.youtube.com/watch?v=h-79QmIV824)\n* [Webinar: Consumer Driven Contracts and Your Microservice Architecture (2016)](https://www.youtube.com/watch?v=4fJiz0woxAc)\n* [Consumer-Driven Contracts: Avoid Microservices Integration Hell! (2016)](https://www.youtube.com/watch?v=rHDyvnp5x3w)\n* [Alon Pe'er: Move Fast and Consumer Driven Contract Test Things](https://www.youtube.com/watch?v=nQ0UGY2-YYI)\n\n\nTutorials\n---------\n\n* [Spring Cloud Contract Workshops](http://cloud-samples.spring.io/spring-cloud-contract-samples/workshops.html)\n* [Pact 101 – Getting started with Pact and Consumer Driven Contract Testing](https://dius.com.au/2016/02/03/microservices-pact/)\n* [How to test Microservice Integration with Pact](https://codefresh.io/blog/how-to-test-microservice-integration-with-pact/)\n\n\nFrameworks\n----------\n\n* [Spring Cloud Contract (JVM)](https://cloud.spring.io/spring-cloud-contract/)\n* [Pact (Ruby)](http://pact.io)\n* [pact-go (golang)](https://github.com/pact-foundation/pact-go)\n* [pact-php (php)](https://github.com/pact-foundation/pact-php)\n* [pact-net (.NET)](https://github.com/pact-foundation/pact-net)\n\n\nBooks\n-----\n\n* [Josh Long & Kenny Bastani: \"Cloud Native Java\" (2017)](http://shop.oreilly.com/product/0636920038252.do)\n* [Rob Daigneau: Service Design Patterns (2011)](http://servicedesignpatterns.com/BookInfo)\n","encoding":"utf-8"}},"public":true,"created_at":"2017-12-26T19:48:59Z","updated_at":"2025-10-08T15:50:57Z","description":"Consumer Driven Contracts","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/comments","owner":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/34526eebbca22bb41b59e4709825c93a","user":{"login":"arifsetyawan","id":1113339,"node_id":"MDQ6VXNlcjExMTMzMzk=","avatar_url":"https://avatars.githubusercontent.com/u/1113339?v=4","gravatar_id":"","url":"https://api.github.com/users/arifsetyawan","html_url":"https://github.com/arifsetyawan","followers_url":"https://api.github.com/users/arifsetyawan/followers","following_url":"https://api.github.com/users/arifsetyawan/following{/other_user}","gists_url":"https://api.github.com/users/arifsetyawan/gists{/gist_id}","starred_url":"https://api.github.com/users/arifsetyawan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arifsetyawan/subscriptions","organizations_url":"https://api.github.com/users/arifsetyawan/orgs","repos_url":"https://api.github.com/users/arifsetyawan/repos","events_url":"https://api.github.com/users/arifsetyawan/events{/privacy}","received_events_url":"https://api.github.com/users/arifsetyawan/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Arif Setyawan","company":"Wallex","blog":"blog.arifsetyawan.com","location":"Balikpapan, Indonesia","email":"me@arifsetyawan.com","hireable":null,"bio":"Building Wallex","twitter_username":"ariflogic","public_repos":11,"public_gists":20,"followers":46,"following":42,"created_at":"2011-10-09T01:36:52Z","updated_at":"2026-04-13T16:53:36Z"},"id":"34526eebbca22bb41b59e4709825c93a","created_at":"2018-11-27T23:38:56Z","updated_at":"2018-11-27T23:39:00Z"},{"url":"https://api.github.com/gists/0438f49bb53b83b213caf15887d6843a","user":{"login":"enixdark","id":4610828,"node_id":"MDQ6VXNlcjQ2MTA4Mjg=","avatar_url":"https://avatars.githubusercontent.com/u/4610828?v=4","gravatar_id":"","url":"https://api.github.com/users/enixdark","html_url":"https://github.com/enixdark","followers_url":"https://api.github.com/users/enixdark/followers","following_url":"https://api.github.com/users/enixdark/following{/other_user}","gists_url":"https://api.github.com/users/enixdark/gists{/gist_id}","starred_url":"https://api.github.com/users/enixdark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enixdark/subscriptions","organizations_url":"https://api.github.com/users/enixdark/orgs","repos_url":"https://api.github.com/users/enixdark/repos","events_url":"https://api.github.com/users/enixdark/events{/privacy}","received_events_url":"https://api.github.com/users/enixdark/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Cqshinn","company":null,"blog":"","location":null,"email":null,"hireable":true,"bio":"Technical","twitter_username":"enix_dark","public_repos":1405,"public_gists":119,"followers":135,"following":59,"created_at":"2013-06-04T12:13:51Z","updated_at":"2026-04-19T07:59:38Z"},"id":"0438f49bb53b83b213caf15887d6843a","created_at":"2019-10-30T04:31:24Z","updated_at":"2019-10-30T04:31:24Z"},{"url":"https://api.github.com/gists/9df6ccb3c55a1daed1ea3c77bf852174","user":{"login":"a-shink","id":17560951,"node_id":"MDQ6VXNlcjE3NTYwOTUx","avatar_url":"https://avatars.githubusercontent.com/u/17560951?v=4","gravatar_id":"","url":"https://api.github.com/users/a-shink","html_url":"https://github.com/a-shink","followers_url":"https://api.github.com/users/a-shink/followers","following_url":"https://api.github.com/users/a-shink/following{/other_user}","gists_url":"https://api.github.com/users/a-shink/gists{/gist_id}","starred_url":"https://api.github.com/users/a-shink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-shink/subscriptions","organizations_url":"https://api.github.com/users/a-shink/orgs","repos_url":"https://api.github.com/users/a-shink/repos","events_url":"https://api.github.com/users/a-shink/events{/privacy}","received_events_url":"https://api.github.com/users/a-shink/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Alexander Shinkarenko","company":null,"blog":"","location":"Novosibirsk","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":8,"public_gists":1,"followers":1,"following":0,"created_at":"2016-03-01T04:02:26Z","updated_at":"2024-07-27T11:34:14Z"},"id":"9df6ccb3c55a1daed1ea3c77bf852174","created_at":"2021-11-08T05:09:08Z","updated_at":"2021-11-08T05:09:08Z"}],"history":[{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"4b99b0d10846ca10d2ebd93fcfc266ca2d5c9a39","committed_at":"2018-01-03T12:56:25Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/4b99b0d10846ca10d2ebd93fcfc266ca2d5c9a39"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"dbb65500f81d8a48fa9e2a4796366c3ea4503ecc","committed_at":"2018-01-03T12:56:02Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/dbb65500f81d8a48fa9e2a4796366c3ea4503ecc"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"5531c2682aa757a5d02e9c1d96ce85d52dc8529f","committed_at":"2018-01-03T12:35:17Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/5531c2682aa757a5d02e9c1d96ce85d52dc8529f"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"e1001b7fa5b7520c17bab0484f11235e19049f2e","committed_at":"2017-12-31T00:29:02Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/e1001b7fa5b7520c17bab0484f11235e19049f2e"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"1ef7cbff4c505c0920a66bcde930c918ec6638f1","committed_at":"2017-12-31T00:27:04Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/1ef7cbff4c505c0920a66bcde930c918ec6638f1"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"9b4db3fea6625d3c4c75799497245891d1326e9c","committed_at":"2017-12-31T00:26:10Z","change_status":{"total":14,"additions":11,"deletions":3},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/9b4db3fea6625d3c4c75799497245891d1326e9c"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"ab2ae63ea3d6f7d4c9eb8aaedd94df2c3524857d","committed_at":"2017-12-30T00:17:15Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/ab2ae63ea3d6f7d4c9eb8aaedd94df2c3524857d"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"6544b2687b7a607c20f9d1dc930dcaa74621e8d7","committed_at":"2017-12-30T00:07:33Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/6544b2687b7a607c20f9d1dc930dcaa74621e8d7"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"39295b4761f2b4900a7b318bc051fa19f4a61a1b","committed_at":"2017-12-27T23:11:49Z","change_status":{"total":3,"additions":3,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/39295b4761f2b4900a7b318bc051fa19f4a61a1b"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"0118a1236895c738eb9645ec95b35c67071fe8ce","committed_at":"2017-12-26T21:16:30Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/0118a1236895c738eb9645ec95b35c67071fe8ce"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"f70f0663c720dc1027f1ffc1add9da11ab5ead59","committed_at":"2017-12-26T20:58:30Z","change_status":{},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/f70f0663c720dc1027f1ffc1add9da11ab5ead59"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"6149f14d58ce52a9f76879a8af6acad1e39e42a2","committed_at":"2017-12-26T20:03:40Z","change_status":{},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/6149f14d58ce52a9f76879a8af6acad1e39e42a2"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"2ac8f89c9ebbaeda5aa2ffa131efebcbf6c3d265","committed_at":"2017-12-26T20:03:20Z","change_status":{},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/2ac8f89c9ebbaeda5aa2ffa131efebcbf6c3d265"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"b202706a03664d04b3bab5fcbd7dd311e3091200","committed_at":"2017-12-26T19:48:59Z","change_status":{},"url":"https://api.github.com/gists/e302a4a8450ca28cbd51f56968157e45/b202706a03664d04b3bab5fcbd7dd311e3091200"}],"truncated":false}