{"push_id":777505893,"size":68,"distinct_size":1,"ref":"refs/heads/jc-billing-from-stripe","head":"ac30103348d822308ea0e6953421e125a11a4869","before":"e202caec02f9371f638efb31e88298cf4b45f3be","commits":[{"sha":"98fe10236ca3f7d1ff55c2da849d5e3a100832d0","author":{"email":"2591e5f46f28d303f9dc027d475a5c60d8dea17a@thoughtbot.com","name":"Dan Croak"},"message":"Store utm_source on user\n\nThe goal of this change is to make it easier\nto query the customer acquisition channel\nwhere the user came from.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/98fe10236ca3f7d1ff55c2da849d5e3a100832d0"},{"sha":"d24d5338c881cefaa4cbca2a1f135fadc13fc56e","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Save subscription metadata as string\n\nStripe metadata does not support arrays.\nThe metadata must be a string.\n\nFixes these errors from Stripe:\n\n    {\n      error:\n      {\n        type: \"invalid_request_error\"\n        message: \"Invalid val: [\"161936\", \"326736\"] must be a string under 500 characters\"\n        param: \"metadata\"\n      }\n    }","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/d24d5338c881cefaa4cbca2a1f135fadc13fc56e"},{"sha":"38ef1259b4fb02694cdab846b63dc8b4a0229fa7","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Add ability to exclude SCSS files\n\nMonkey patch the SCSSLint gem to expand the file path\nto the same directory as the config file.\nSince the config file is a Tempfile,\nthat directory can be acquired by creating another Tempfile\n\nThis only makes the top level `exclude:` option work\nin the SCSSLint configuration file.\n\n`exclude` at each individual SCSS linters level will not work\nbecause we are passing SCSSLint string (file content),\nand thus file path is not available when SCSSLint needs it.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/38ef1259b4fb02694cdab846b63dc8b4a0229fa7"},{"sha":"71d5e04e74269955938d56c05c6f60da2df9000e","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Fix load path of the scss-lint patch\n\nSince `lib/` is being auto-loaded, we don't need to specify it.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/71d5e04e74269955938d56c05c6f60da2df9000e"},{"sha":"05bc6429f595e618544dae9cf021a572fad8712f","author":{"email":"ea7c15c24f4fa9fbefd717dc2e438c32ff663fe4@thoughtbot.com","name":"Laila Winner"},"message":"Validate billable email when updating account\n\n* Update `AccountsController#update` to validate billable email\n* Add `email_validator` to Gemfile\n* Rename `AccountsController` spec file","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/05bc6429f595e618544dae9cf021a572fad8712f"},{"sha":"3ed1c28af0822b96e174ed740c797c3077524e58","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Fix intermittent test failures\n\nThere are intermittent test failures,\ndue to us setting the `github_id` on repo.\nSince the repo factory sets the `github_id` via sequence,\nsometimes there are conflicts with what we set.\nNo tests depend on explicit `github_id`, so this commit kills it.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/3ed1c28af0822b96e174ed740c797c3077524e58"},{"sha":"1231f1ffcab4a20589ff5671ee51af43599343a8","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Use new GitHub API endpoint for user's repos\n\nAs per: https://developer.github.com/v3/repos/#list-your-repositories\nwe should be using the new API endpoint to fetch user's repositories.\n\n* Removing methods and fixtures that are no longer needed,\n  because the new GitHub API simplifies fetching repos.\n* `with_options` wasn't working for GitHub client.\n  We need to pass the `accept` header directly to the method call.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/1231f1ffcab4a20589ff5671ee51af43599343a8"},{"sha":"ee21df7323a7776798a59c4c83e71d4bbc334ec4","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Support Haml configuration\n\n* Fixes `KeyError: key not found: \"haml\"` error","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/ee21df7323a7776798a59c4c83e71d4bbc334ec4"},{"sha":"8f97223a2e235accdd998c2cafa72536f03df86d","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Use external service to review SCSS\n\n* Use Resque to communicate with service\n* Service expects filename, commit_sha, patch, content and config\n* Hound expects filename, commit_sha, patch and violations from service","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/8f97223a2e235accdd998c2cafa72536f03df86d"},{"sha":"f9966abf580c5f4aaf6f5b699db9adddceb208ca","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Return unparsed file content from RepoConfig#raw_for","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/f9966abf580c5f4aaf6f5b699db9adddceb208ca"},{"sha":"924227486db8e701d422cd0018ed63d4e0aac767","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Reschedule job if build hasn't been created\n\n* This handles the case where SCSS reviews finish before the build is\n* created.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/924227486db8e701d422cd0018ed63d4e0aac767"},{"sha":"e801dc6b3c730b5248f90592a7ca247362276db2","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Handle Resque::TermException","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/e801dc6b3c730b5248f90592a7ca247362276db2"},{"sha":"22430035072eeb9f80aedf92ac43d6b1064469e6","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Exclude predicate matcher rule for RSpec specs\n\nUsing [Predicate matchers][predicates] is a common convention\nwithin the RSpec community.\n\n[Related blog post][blog-post].\n\n[predicates]: https://www.relishapp.com/rspec/rspec-expectations/v/3-2/docs/built-in-matchers/predicate-matchers\n[blog-post]: http://www.elabs.se/blog/51-simple-tricks-to-clean-up-your-capybara-tests","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/22430035072eeb9f80aedf92ac43d6b1064469e6"},{"sha":"57244a40216532d2a72bb2627a724ba76fe3c66f","author":{"email":"4c6d0b2619069006ac7c9a25901af91ff7fe6f78@gmail.com","name":"Don Okuda"},"message":"Add update email address field UI\n\n* Add flash messages for success and errors\n* Move button styles\n\nhttps://trello.com/c/7MWBmPXN","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/57244a40216532d2a72bb2627a724ba76fe3c66f"},{"sha":"ba6d8c430dd6a99083c46aa869725396f0be2e53","author":{"email":"ea7c15c24f4fa9fbefd717dc2e438c32ff663fe4@thoughtbot.com","name":"Laila Winner"},"message":"Update billable email on form submission\n\n* Send Ajax request to update account when \"Update\" button is clicked\n* Add `accountController#update`\n* Update account page to show current billable email","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/ba6d8c430dd6a99083c46aa869725396f0be2e53"},{"sha":"0aa58c8114d2a3328718e8f2520986031b6128c6","author":{"email":"ea7c15c24f4fa9fbefd717dc2e438c32ff663fe4@thoughtbot.com","name":"Laila Winner"},"message":"Show email update form if user is Stripe customer\n\n* Only show the form for updating the billable email on an account if the\n  current user has a Stripe customer ID. Users who aren't in Stripe's\n  system shouldn't have the ability to update their billable email\n  address.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/0aa58c8114d2a3328718e8f2520986031b6128c6"},{"sha":"f7a3656f056065a37fbb05530e891829db89fe58","author":{"email":"a4d5a07e14ee1dd16476f2bf02e820469d920e58@gmail.com","name":"Scott Albertson"},"message":"Find builds for completed reviews by commit and PR\n\n* This fixes a bug where the build couldn't be found in some cases\n* because there were two builds with the same commit_sha.\n\n* Refactor CommitFile to take less rich objects to make it easier to\n* use.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/f7a3656f056065a37fbb05530e891829db89fe58"},{"sha":"eb62579f57500da45f48c306d8501af348533e16","author":{"email":"711c73f64afdce07b7e38039a96d2224209e9a6c@thorn.co","name":"Chris Thorn"},"message":"Point to new SCSS config location","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/eb62579f57500da45f48c306d8501af348533e16"},{"sha":"ff2af64d59f492bb8a324f517ac6610781633d17","author":{"email":"79e2475f81a6317276bf7cbb3958b20d289b78df@thoughtbot.com","name":"Greg Lazarev"},"message":"Don't hard-fail on repo update during sync\n\nThere are situations when both `github_id` and `github_name`\nare taken by other repos.\nWe don't want to fail the sync in that case,\nbut we do want to get notified,\nand address those repos manually.","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/ff2af64d59f492bb8a324f517ac6610781633d17"},{"sha":"a70870dc57fdf474c1ac29ce3af052bd2bfbdbf7","author":{"email":"711c73f64afdce07b7e38039a96d2224209e9a6c@thorn.co","name":"Chris Thorn"},"message":"Don't comment until the build is finished\n\nThis will allow us to respect the MAX_COMMENTS environment variable\nacross the whole build and should help alleviate some abuse warnings.\n\nAs-is, if an external worker fails for whatever reason, the build will\nnot be marked as complete and comments will never go out. I *think*\nwe'll want to get that working by having the workers be retryable and we\ncan mark the build as complete if it fails too many times. Maybe this is\ngood enough for now, though?","distinct":false,"url":"https://api.github.com/repos/thoughtbot/hound/commits/a70870dc57fdf474c1ac29ce3af052bd2bfbdbf7"}]}