Coder Social home page Coder Social logo

Comments (11)

mtchavez avatar mtchavez commented on September 22, 2024

I am guessing that whatever CircleCI is returning back in some cases is not able to be parsed as JSON for whatever reason: https://github.com/mtchavez/circleci/blob/master/lib/circleci/http.rb#L43

Can you provide an example response that is not being parsed?

from circleci.

startling avatar startling commented on September 22, 2024

Hi! CircleCI engineer here. As far as I can tell, we're not returning invalid JSON for tinkerbox/uniclimb, but I'd be interested to see what @ugoa is getting on his end, too.

My two cents: JSON.parse(body) rescue body seems likely to cause unexpected behavior like this -- wouldn't it be better to throw?

from circleci.

ugoa avatar ugoa commented on September 22, 2024

Sure, here is an example that is being parsed wrong. It looks complex, but it's really just something like "[1, 2, 3, 4, 5]". You can see inside the string it's actually a regular Array.

pry(main)> res.body
"[{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-28T15:01:59.826Z\",\"branch\":\"master\",\"body\":\"Third-party authentication services\",\"author_date\":\"2014-04-28T23:01:55+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64703,\"public_ip_addr\":\"23.21.15.127\"}],\"committer_date\":\"2014-04-28T23:01:55+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/bce9536f154d...7ee1528d0ae0\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":49194,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-28T15:02:00.443Z\",\"stop_time\":\"2014-04-28T15:02:49.637Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #7 from tinkerbox/feature/external\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":31555,\"status\":\"success\",\"build_num\":17},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"7ee1528d0ae0014ff4529b0c5b3c0d7e7152541a\",\"build_num\":24,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":31555,\"status\":\"success\",\"build_num\":17},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Remove secrets.yml from git\",\"author_date\":\"2014-04-25T14:12:11+08:00\",\"committer_date\":\"2014-04-25T14:12:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/260c4688baff60f6d8ea7140ce3d6d6e46ff995c\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds omniauth stratergies\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"260c4688baff60f6d8ea7140ce3d6d6e46ff995c\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Remove unnecessary dependency for sorcery\",\"author_date\":\"2014-04-25T14:13:38+08:00\",\"committer_date\":\"2014-04-25T14:13:38+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/05e363382bb48376b39781995363a0104aaa4f5f\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add user and authentication relationship\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"05e363382bb48376b39781995363a0104aaa4f5f\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-25T14:46:11+08:00\",\"committer_date\":\"2014-04-25T14:46:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/53b25d772f786e0b7492083b729485f9b0da1877\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Config omniauth and add sample secrets.yml\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"53b25d772f786e0b7492083b729485f9b0da1877\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-25T14:50:46+08:00\",\"committer_date\":\"2014-04-25T14:50:46+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3d2af6a60d9225995552b70303e0cd9cd600bfb3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update readme\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3d2af6a60d9225995552b70303e0cd9cd600bfb3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Adds test spec for authentication (iCloud)\",\"author_date\":\"2014-04-25T18:45:40+08:00\",\"committer_date\":\"2014-04-25T18:45:40+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/0dcad5a7428a78a3a8da867870281486fadbaa11\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Ability to add oauth services (WIP)\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"0dcad5a7428a78a3a8da867870281486fadbaa11\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-25T19:10:26+08:00\",\"committer_date\":\"2014-04-25T19:10:26+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/32bab596fa53565d26205af54e042e67b8de4d77\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update text\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"32bab596fa53565d26205af54e042e67b8de4d77\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-25T19:33:02+08:00\",\"committer_date\":\"2014-04-25T19:33:02+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3dc0048e297ccd5c57d677541bf68163a55f1fdd\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Use dotenv instead of secrets.yml\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3dc0048e297ccd5c57d677541bf68163a55f1fdd\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-25T19:35:14+08:00\",\"committer_date\":\"2014-04-25T19:35:14+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3ce2bec869da9b5bf22efe4d94087d74c67019e6\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix copy and paste typo \xF0\x9F\x98\x9D\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3ce2bec869da9b5bf22efe4d94087d74c67019e6\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-28T13:09:11+08:00\",\"committer_date\":\"2014-04-28T13:09:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/e231bff03eff0c01dde96d91c2dae86db716c514\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds pry-remote\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"e231bff03eff0c01dde96d91c2dae86db716c514\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-28T14:51:41+08:00\",\"committer_date\":\"2014-04-28T14:51:41+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/564849089208f940c11465d1b0323d16dd8d6757\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Makes windows live and google works\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"564849089208f940c11465d1b0323d16dd8d6757\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-28T21:57:28+08:00\",\"committer_date\":\"2014-04-28T21:57:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/90a08978f146fb25566cf69014ecf72e5853d2a1\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix google oauth callback issue\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"90a08978f146fb25566cf69014ecf72e5853d2a1\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Third-party authentication services\",\"author_date\":\"2014-04-28T23:01:55+08:00\",\"committer_date\":\"2014-04-28T23:01:55+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/7ee1528d0ae0014ff4529b0c5b3c0d7e7152541a\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #7 from tinkerbox/feature/external\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"7ee1528d0ae0014ff4529b0c5b3c0d7e7152541a\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/24\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-28T15:02:00.187Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-28T13:57:47.960Z\",\"branch\":\"feature/external\",\"body\":\"\",\"author_date\":\"2014-04-28T21:57:28+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64772,\"public_ip_addr\":\"54.198.64.245\"}],\"committer_date\":\"2014-04-28T21:57:28+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/564849089208...90a08978f146\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":25410,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-28T13:57:48.173Z\",\"stop_time\":\"2014-04-28T13:58:13.583Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Fix google oauth callback issue\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":34761,\"status\":\"success\",\"build_num\":22},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"90a08978f146fb25566cf69014ecf72e5853d2a1\",\"build_num\":23,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":34761,\"status\":\"success\",\"build_num\":22},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-28T21:57:28+08:00\",\"committer_date\":\"2014-04-28T21:57:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/90a08978f146fb25566cf69014ecf72e5853d2a1\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix google oauth callback issue\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"90a08978f146fb25566cf69014ecf72e5853d2a1\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/23\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-28T13:57:48.068Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-28T07:03:34.077Z\",\"branch\":\"feature/external\",\"body\":\"\",\"author_date\":\"2014-04-28T14:51:41+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64751,\"public_ip_addr\":\"54.197.63.225\"}],\"committer_date\":\"2014-04-28T14:51:41+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/3ce2bec869da...564849089208\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":34761,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-28T07:03:34.121Z\",\"stop_time\":\"2014-04-28T07:04:08.882Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Makes windows live and google works\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":40106,\"status\":\"success\",\"build_num\":21},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"564849089208f940c11465d1b0323d16dd8d6757\",\"build_num\":22,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":40106,\"status\":\"success\",\"build_num\":21},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-28T13:09:11+08:00\",\"committer_date\":\"2014-04-28T13:09:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/e231bff03eff0c01dde96d91c2dae86db716c514\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds pry-remote\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"e231bff03eff0c01dde96d91c2dae86db716c514\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-28T14:51:41+08:00\",\"committer_date\":\"2014-04-28T14:51:41+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/564849089208f940c11465d1b0323d16dd8d6757\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Makes windows live and google works\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"564849089208f940c11465d1b0323d16dd8d6757\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/22\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-28T07:03:34.031Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-25T11:38:00.637Z\",\"branch\":\"feature/external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:35:14+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64546,\"public_ip_addr\":\"54.227.122.28\"}],\"committer_date\":\"2014-04-25T19:35:14+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/3dc0048e297c...3ce2bec869da\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":40106,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-25T11:38:00.814Z\",\"stop_time\":\"2014-04-25T11:38:40.920Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Fix copy and paste typo \xF0\x9F\x98\x9D\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":39315,\"status\":\"fixed\",\"build_num\":20},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"3ce2bec869da9b5bf22efe4d94087d74c67019e6\",\"build_num\":21,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":39315,\"status\":\"fixed\",\"build_num\":20},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:35:14+08:00\",\"committer_date\":\"2014-04-25T19:35:14+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3ce2bec869da9b5bf22efe4d94087d74c67019e6\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix copy and paste typo \xF0\x9F\x98\x9D\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3ce2bec869da9b5bf22efe4d94087d74c67019e6\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/21\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-25T11:38:00.719Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-25T11:33:17.694Z\",\"branch\":\"feature/external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:33:02+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64628,\"public_ip_addr\":\"23.22.190.165\"}],\"committer_date\":\"2014-04-25T19:33:02+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/32bab596fa53...3dc0048e297c\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":39315,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-25T11:33:17.831Z\",\"stop_time\":\"2014-04-25T11:33:57.146Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Use dotenv instead of secrets.yml\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":31555,\"status\":\"success\",\"build_num\":17},\"outcome\":\"success\",\"status\":\"fixed\",\"vcs_revision\":\"3dc0048e297ccd5c57d677541bf68163a55f1fdd\",\"build_num\":20,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":45121,\"status\":\"failed\",\"build_num\":19},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:33:02+08:00\",\"committer_date\":\"2014-04-25T19:33:02+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3dc0048e297ccd5c57d677541bf68163a55f1fdd\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Use dotenv instead of secrets.yml\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3dc0048e297ccd5c57d677541bf68163a55f1fdd\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/20\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-25T11:33:17.754Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-25T11:10:41.391Z\",\"branch\":\"feature/external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:10:26+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64774,\"public_ip_addr\":\"54.198.9.193\"}],\"committer_date\":\"2014-04-25T19:10:26+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/0dcad5a7428a...32bab596fa53\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":45121,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-25T11:10:41.622Z\",\"stop_time\":\"2014-04-25T11:11:26.743Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Update text\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":31555,\"status\":\"success\",\"build_num\":17},\"outcome\":\"failed\",\"status\":\"failed\",\"vcs_revision\":\"32bab596fa53565d26205af54e042e67b8de4d77\",\"build_num\":19,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":36802,\"status\":\"failed\",\"build_num\":18},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-25T19:10:26+08:00\",\"committer_date\":\"2014-04-25T19:10:26+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/32bab596fa53565d26205af54e042e67b8de4d77\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update text\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"32bab596fa53565d26205af54e042e67b8de4d77\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":true,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/19\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-25T11:10:41.522Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-25T10:46:54.422Z\",\"branch\":\"feature/external\",\"body\":\"- Adds test spec for authentication (iCloud)\",\"author_date\":\"2014-04-25T18:45:40+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64684,\"public_ip_addr\":\"54.204.178.135\"}],\"committer_date\":\"2014-04-25T18:45:40+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/260c4688baff^...0dcad5a7428a\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":36802,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-25T10:49:56.155Z\",\"stop_time\":\"2014-04-25T10:50:32.957Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Ability to add oauth services (WIP)\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":31555,\"status\":\"success\",\"build_num\":17},\"outcome\":\"failed\",\"status\":\"failed\",\"vcs_revision\":\"0dcad5a7428a78a3a8da867870281486fadbaa11\",\"build_num\":18,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"- Remove secrets.yml from git\",\"author_date\":\"2014-04-25T14:12:11+08:00\",\"committer_date\":\"2014-04-25T14:12:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/260c4688baff60f6d8ea7140ce3d6d6e46ff995c\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds omniauth stratergies\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"260c4688baff60f6d8ea7140ce3d6d6e46ff995c\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"- Remove unnecessary dependency for sorcery\",\"author_date\":\"2014-04-25T14:13:38+08:00\",\"committer_date\":\"2014-04-25T14:13:38+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/05e363382bb48376b39781995363a0104aaa4f5f\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add user and authentication relationship\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"05e363382bb48376b39781995363a0104aaa4f5f\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-25T14:46:11+08:00\",\"committer_date\":\"2014-04-25T14:46:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/53b25d772f786e0b7492083b729485f9b0da1877\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Config omniauth and add sample secrets.yml\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"53b25d772f786e0b7492083b729485f9b0da1877\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"\",\"author_date\":\"2014-04-25T14:50:46+08:00\",\"committer_date\":\"2014-04-25T14:50:46+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3d2af6a60d9225995552b70303e0cd9cd600bfb3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update readme\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3d2af6a60d9225995552b70303e0cd9cd600bfb3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"external\",\"body\":\"- Adds test spec for authentication (iCloud)\",\"author_date\":\"2014-04-25T18:45:40+08:00\",\"committer_date\":\"2014-04-25T18:45:40+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/0dcad5a7428a78a3a8da867870281486fadbaa11\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Ability to add oauth services (WIP)\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"0dcad5a7428a78a3a8da867870281486fadbaa11\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":true,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/18\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-25T10:49:56.024Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-25T03:06:32.991Z\",\"branch\":\"master\",\"body\":\"Implements encryption\",\"author_date\":\"2014-04-25T11:06:31+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64760,\"public_ip_addr\":\"54.82.81.141\"}],\"committer_date\":\"2014-04-25T11:06:31+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/e5f1614e1e0e...bce9536f154d\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":31555,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-25T03:06:33.375Z\",\"stop_time\":\"2014-04-25T03:07:04.930Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #6 from tinkerbox/feature/encryption\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":39138,\"status\":\"success\",\"build_num\":14},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"bce9536f154d3ea79c27addfb0cd0ac36c692617\",\"build_num\":17,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":39138,\"status\":\"success\",\"build_num\":14},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-22T13:49:25+08:00\",\"committer_date\":\"2014-04-22T13:49:25+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/f0c662706a4384c005b32eb5cb317b7175854298\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds Forge\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"f0c662706a4384c005b32eb5cb317b7175854298\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-22T15:43:59+08:00\",\"committer_date\":\"2014-04-22T15:43:59+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/12addc9dc6201d769eb7db6c85449cb7e02912ab\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update authentication schema\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"12addc9dc6201d769eb7db6c85449cb7e02912ab\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Adds Authentication controller\\n  - Better iPhone supports\",\"author_date\":\"2014-04-22T17:31:00+08:00\",\"committer_date\":\"2014-04-22T17:31:00+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/5c4e47269c78e97a7a4ee143d8b742b0879ffb86\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds new service pageAdd new service page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"5c4e47269c78e97a7a4ee143d8b742b0879ffb86\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-22T17:54:53+08:00\",\"committer_date\":\"2014-04-22T17:54:53+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/cab2d63fb37816020fc0656eea8dd891b8fcff75\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add gon\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"cab2d63fb37816020fc0656eea8dd891b8fcff75\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Adds jquery-cookie\\n  - Patch util.js \\\\#100 to accept string data\",\"author_date\":\"2014-04-23T18:57:00+08:00\",\"committer_date\":\"2014-04-23T18:57:00+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/aced3be9b10a13f10e54c122a9b5af8340ceb4a2\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Change forge's path\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"aced3be9b10a13f10e54c122a9b5af8340ceb4a2\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- rename authencation_controller to authentications_controller\\n  - add user relation to authentications\",\"author_date\":\"2014-04-23T18:59:05+08:00\",\"committer_date\":\"2014-04-23T18:59:05+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3f70b5a3b76f1d2648adcfbbd1c431ae43c456e5\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds vi to authentications\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3f70b5a3b76f1d2648adcfbbd1c431ae43c456e5\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Encrypt password fields using master password\\n  - Functionality done, WIP to finalize\",\"author_date\":\"2014-04-23T19:01:27+08:00\",\"committer_date\":\"2014-04-23T19:01:27+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/51c471b2ea11b79d02c0ddebf692a313d19998df\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Implements master_password encryption\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"51c471b2ea11b79d02c0ddebf692a313d19998df\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T11:43:28+08:00\",\"committer_date\":\"2014-04-24T11:43:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/4f0dca72cbaac4574878f5924ff31f751f6629f3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add validations on master password\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"4f0dca72cbaac4574878f5924ff31f751f6629f3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T11:48:44+08:00\",\"committer_date\":\"2014-04-24T11:48:44+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/684eeb0c9307c1a5e011c30ef8dfd7ab2a6aab57\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add ActiveRecord::Migration.maintain_test_schema! for rails 4.1\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"684eeb0c9307c1a5e011c30ef8dfd7ab2a6aab57\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T17:39:55+08:00\",\"committer_date\":\"2014-04-24T17:39:55+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/41a23fcd6d6a7e53cb6e5e88e8be422991c545b3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds bitmask_attributes\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"41a23fcd6d6a7e53cb6e5e88e8be422991c545b3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T17:45:52+08:00\",\"committer_date\":\"2014-04-24T17:45:52+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/84dae1f0410812e1577bb1804da41edaa88ee3a3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"User bitmark instead of enum for sync_status\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"84dae1f0410812e1577bb1804da41edaa88ee3a3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T18:34:09+08:00\",\"committer_date\":\"2014-04-24T18:34:09+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/89d98432413f0af3a1ea6d96a6ef14e0ad253de6\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds html5 validation on form submission\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"89d98432413f0af3a1ea6d96a6ef14e0ad253de6\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T18:37:46+08:00\",\"committer_date\":\"2014-04-24T18:37:46+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/a7a03cf85c41a599103c41103e12453031cafefb\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix typo\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"a7a03cf85c41a599103c41103e12453031cafefb\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-24T18:49:50+08:00\",\"committer_date\":\"2014-04-24T18:49:50+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/e7ba7a8f394b1e730538c57ba78b52a148b86890\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Display all created accounts\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"e7ba7a8f394b1e730538c57ba78b52a148b86890\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Implements encryption\",\"author_date\":\"2014-04-25T11:06:31+08:00\",\"committer_date\":\"2014-04-25T11:06:31+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/bce9536f154d3ea79c27addfb0cd0ac36c692617\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #6 from tinkerbox/feature/encryption\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"bce9536f154d3ea79c27addfb0cd0ac36c692617\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/17\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-25T03:06:33.177Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-24T10:50:22.088Z\",\"branch\":\"feature/encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T18:49:50+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64632,\"public_ip_addr\":\"54.82.252.221\"}],\"committer_date\":\"2014-04-24T18:49:50+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/51c471b2ea11...e7ba7a8f394b\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":35638,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-24T10:50:22.285Z\",\"stop_time\":\"2014-04-24T10:50:57.923Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Display all created accounts\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":34488,\"status\":\"success\",\"build_num\":15},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"e7ba7a8f394b1e730538c57ba78b52a148b86890\",\"build_num\":16,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":34488,\"status\":\"success\",\"build_num\":15},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T11:43:28+08:00\",\"committer_date\":\"2014-04-24T11:43:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/4f0dca72cbaac4574878f5924ff31f751f6629f3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add validations on master password\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"4f0dca72cbaac4574878f5924ff31f751f6629f3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T11:48:44+08:00\",\"committer_date\":\"2014-04-24T11:48:44+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/684eeb0c9307c1a5e011c30ef8dfd7ab2a6aab57\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add ActiveRecord::Migration.maintain_test_schema! for rails 4.1\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"684eeb0c9307c1a5e011c30ef8dfd7ab2a6aab57\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T17:39:55+08:00\",\"committer_date\":\"2014-04-24T17:39:55+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/41a23fcd6d6a7e53cb6e5e88e8be422991c545b3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds bitmask_attributes\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"41a23fcd6d6a7e53cb6e5e88e8be422991c545b3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T17:45:52+08:00\",\"committer_date\":\"2014-04-24T17:45:52+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/84dae1f0410812e1577bb1804da41edaa88ee3a3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"User bitmark instead of enum for sync_status\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"84dae1f0410812e1577bb1804da41edaa88ee3a3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T18:34:09+08:00\",\"committer_date\":\"2014-04-24T18:34:09+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/89d98432413f0af3a1ea6d96a6ef14e0ad253de6\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds html5 validation on form submission\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"89d98432413f0af3a1ea6d96a6ef14e0ad253de6\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T18:37:46+08:00\",\"committer_date\":\"2014-04-24T18:37:46+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/a7a03cf85c41a599103c41103e12453031cafefb\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix typo\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"a7a03cf85c41a599103c41103e12453031cafefb\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-24T18:49:50+08:00\",\"committer_date\":\"2014-04-24T18:49:50+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/e7ba7a8f394b1e730538c57ba78b52a148b86890\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Display all created accounts\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"e7ba7a8f394b1e730538c57ba78b52a148b86890\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/16\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-24T10:50:22.177Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-23T11:02:30.300Z\",\"branch\":\"feature/encryption\",\"body\":\"- Encrypt password fields using master password\\n  - Functionality done, WIP to finalize\",\"author_date\":\"2014-04-23T19:01:27+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64561,\"public_ip_addr\":\"54.81.155.110\"}],\"committer_date\":\"2014-04-23T19:01:27+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/f0c662706a43^...51c471b2ea11\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":34488,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-23T11:02:30.555Z\",\"stop_time\":\"2014-04-23T11:03:05.043Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Implements master_password encryption\",\"messages\":[{\"type\":\"warning\",\"message\":\"Your version of Simplecov has a serious bug affecting exit codes! It can cause your build to pass even when you have failing tests, see <a href='https://github.com/colszowka/simplecov/issues/281'>colszowka/simplecov #281</a>. Please use <code>gem 'simplecov', '~> 0.7.1'</code> until this is resolved.\"}],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":39138,\"status\":\"success\",\"build_num\":14},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"51c471b2ea11b79d02c0ddebf692a313d19998df\",\"build_num\":15,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-22T13:49:25+08:00\",\"committer_date\":\"2014-04-22T13:49:25+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/f0c662706a4384c005b32eb5cb317b7175854298\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds Forge\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"f0c662706a4384c005b32eb5cb317b7175854298\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-22T15:43:59+08:00\",\"committer_date\":\"2014-04-22T15:43:59+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/12addc9dc6201d769eb7db6c85449cb7e02912ab\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update authentication schema\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"12addc9dc6201d769eb7db6c85449cb7e02912ab\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"- Adds Authentication controller\\n  - Better iPhone supports\",\"author_date\":\"2014-04-22T17:31:00+08:00\",\"committer_date\":\"2014-04-22T17:31:00+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/5c4e47269c78e97a7a4ee143d8b742b0879ffb86\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds new service pageAdd new service page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"5c4e47269c78e97a7a4ee143d8b742b0879ffb86\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"\",\"author_date\":\"2014-04-22T17:54:53+08:00\",\"committer_date\":\"2014-04-22T17:54:53+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/cab2d63fb37816020fc0656eea8dd891b8fcff75\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add gon\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"cab2d63fb37816020fc0656eea8dd891b8fcff75\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"- Adds jquery-cookie\\n  - Patch util.js \\\\#100 to accept string data\",\"author_date\":\"2014-04-23T18:57:00+08:00\",\"committer_date\":\"2014-04-23T18:57:00+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/aced3be9b10a13f10e54c122a9b5af8340ceb4a2\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Change forge's path\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"aced3be9b10a13f10e54c122a9b5af8340ceb4a2\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"- rename authencation_controller to authentications_controller\\n  - add user relation to authentications\",\"author_date\":\"2014-04-23T18:59:05+08:00\",\"committer_date\":\"2014-04-23T18:59:05+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/3f70b5a3b76f1d2648adcfbbd1c431ae43c456e5\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds vi to authentications\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"3f70b5a3b76f1d2648adcfbbd1c431ae43c456e5\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"encryption\",\"body\":\"- Encrypt password fields using master password\\n  - Functionality done, WIP to finalize\",\"author_date\":\"2014-04-23T19:01:27+08:00\",\"committer_date\":\"2014-04-23T19:01:27+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/51c471b2ea11b79d02c0ddebf692a313d19998df\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Implements master_password encryption\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"51c471b2ea11b79d02c0ddebf692a313d19998df\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/15\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-23T11:02:30.444Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-17T07:54:17.737Z\",\"branch\":\"master\",\"body\":\"Adds authority on admin page\",\"author_date\":\"2014-04-17T15:54:16+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64779,\"public_ip_addr\":\"54.205.53.249\"}],\"committer_date\":\"2014-04-17T15:54:16+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/8bbe224d408b...e5f1614e1e0e\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":39138,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-17T07:54:18.116Z\",\"stop_time\":\"2014-04-17T07:54:57.254Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #5 from tinkerbox/feature/setup\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":30987,\"status\":\"success\",\"build_num\":12},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"e5f1614e1e0ef87aeec7445fe239a47ef8be3192\",\"build_num\":14,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":30987,\"status\":\"success\",\"build_num\":12},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Adds account services page\",\"author_date\":\"2014-04-17T14:32:28+08:00\",\"committer_date\":\"2014-04-17T14:32:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/c86cfd91fbffb004558e997014a75dd0f39037be\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds authority on admin page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"c86cfd91fbffb004558e997014a75dd0f39037be\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Adds authority on admin page\",\"author_date\":\"2014-04-17T15:54:16+08:00\",\"committer_date\":\"2014-04-17T15:54:16+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/e5f1614e1e0ef87aeec7445fe239a47ef8be3192\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #5 from tinkerbox/feature/setup\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"e5f1614e1e0ef87aeec7445fe239a47ef8be3192\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/14\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-17T07:54:17.938Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-17T07:53:38.023Z\",\"branch\":\"feature/setup\",\"body\":\"- Adds account services page\",\"author_date\":\"2014-04-17T14:32:28+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64652,\"public_ip_addr\":\"54.225.21.121\"}],\"committer_date\":\"2014-04-17T14:32:28+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/commit/c86cfd91fbff\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":37804,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-17T07:53:38.317Z\",\"stop_time\":\"2014-04-17T07:54:16.121Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Adds authority on admin page\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":29389,\"status\":\"success\",\"build_num\":11},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"c86cfd91fbffb004558e997014a75dd0f39037be\",\"build_num\":13,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":29389,\"status\":\"success\",\"build_num\":11},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"setup\",\"body\":\"- Adds account services page\",\"author_date\":\"2014-04-17T14:32:28+08:00\",\"committer_date\":\"2014-04-17T14:32:28+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/c86cfd91fbffb004558e997014a75dd0f39037be\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds authority on admin page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"c86cfd91fbffb004558e997014a75dd0f39037be\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/13\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-17T07:53:38.160Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-16T11:42:21.769Z\",\"branch\":\"master\",\"body\":\"Twinning, master password\",\"author_date\":\"2014-04-16T19:42:11+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64612,\"public_ip_addr\":\"23.23.65.75\"}],\"committer_date\":\"2014-04-16T19:42:11+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/d868bd78e251...8bbe224d408b\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":30987,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-16T11:42:22.071Z\",\"stop_time\":\"2014-04-16T11:42:53.058Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #4 from tinkerbox/feature/setup\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":29758,\"status\":\"success\",\"build_num\":10},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"8bbe224d408be5e16ee4c7168e89603bfd761864\",\"build_num\":12,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":29758,\"status\":\"success\",\"build_num\":10},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-16T17:58:01+08:00\",\"committer_date\":\"2014-04-16T17:58:01+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/146f3d76d6983ac6288aae1262e70fc4c8352055\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Setup twinning and master password pages\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"146f3d76d6983ac6288aae1262e70fc4c8352055\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Update login button to show user name\",\"author_date\":\"2014-04-16T19:33:47+08:00\",\"committer_date\":\"2014-04-16T19:33:47+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/dcd4654725e8454afdd44bf0ee539007bd80dac9\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add master password page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"dcd4654725e8454afdd44bf0ee539007bd80dac9\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Twinning, master password\",\"author_date\":\"2014-04-16T19:42:11+08:00\",\"committer_date\":\"2014-04-16T19:42:11+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/8bbe224d408be5e16ee4c7168e89603bfd761864\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #4 from tinkerbox/feature/setup\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"8bbe224d408be5e16ee4c7168e89603bfd761864\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/12\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-16T11:42:21.958Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-16T11:34:44.242Z\",\"branch\":\"feature/setup\",\"body\":\"- Update login button to show user name\",\"author_date\":\"2014-04-16T19:33:47+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64556,\"public_ip_addr\":\"54.196.30.147\"}],\"committer_date\":\"2014-04-16T19:33:47+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/146f3d76d698^...dcd4654725e8\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":29389,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-16T11:34:44.459Z\",\"stop_time\":\"2014-04-16T11:35:13.848Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Add master password page\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":29758,\"status\":\"success\",\"build_num\":10},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"dcd4654725e8454afdd44bf0ee539007bd80dac9\",\"build_num\":11,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"setup\",\"body\":\"\",\"author_date\":\"2014-04-16T17:58:01+08:00\",\"committer_date\":\"2014-04-16T17:58:01+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/146f3d76d6983ac6288aae1262e70fc4c8352055\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Setup twinning and master password pages\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"146f3d76d6983ac6288aae1262e70fc4c8352055\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"setup\",\"body\":\"- Update login button to show user name\",\"author_date\":\"2014-04-16T19:33:47+08:00\",\"committer_date\":\"2014-04-16T19:33:47+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/dcd4654725e8454afdd44bf0ee539007bd80dac9\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add master password page\",\"committer_login\":\"shinnyx\",\"author_login\":\"shinnyx\",\"commit\":\"dcd4654725e8454afdd44bf0ee539007bd80dac9\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/11\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-16T11:34:44.341Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-15T11:35:07.393Z\",\"branch\":\"master\",\"body\":\"Reset password\",\"author_date\":\"2014-04-15T19:35:06+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64719,\"public_ip_addr\":\"54.198.13.61\"}],\"committer_date\":\"2014-04-15T19:35:06+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/28d77d4af363...d868bd78e251\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":29758,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-15T11:35:07.768Z\",\"stop_time\":\"2014-04-15T11:35:37.526Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #3 from tinkerbox/feature/reset_password\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":53004,\"status\":\"success\",\"build_num\":8},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"d868bd78e251cc8a495a25fa73f8d99bf0331a3d\",\"build_num\":10,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":53004,\"status\":\"success\",\"build_num\":8},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T19:32:18+08:00\",\"committer_date\":\"2014-04-15T19:32:18+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/81281cf9412b5cc6b6b30b36ef439a40303edf3a\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Reset password\",\"commit\":\"81281cf9412b5cc6b6b30b36ef439a40303edf3a\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Reset password\",\"author_date\":\"2014-04-15T19:35:06+08:00\",\"committer_date\":\"2014-04-15T19:35:06+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/d868bd78e251cc8a495a25fa73f8d99bf0331a3d\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #3 from tinkerbox/feature/reset_password\",\"commit\":\"d868bd78e251cc8a495a25fa73f8d99bf0331a3d\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/10\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-15T11:35:07.616Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-15T11:32:41.181Z\",\"branch\":\"feature/reset_password\",\"body\":\"\",\"author_date\":\"2014-04-15T19:32:18+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64787,\"public_ip_addr\":\"54.198.72.255\"}],\"committer_date\":\"2014-04-15T19:32:18+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/commit/81281cf9412b\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":38504,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-15T11:32:41.380Z\",\"stop_time\":\"2014-04-15T11:33:19.884Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Reset password\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":53004,\"status\":\"success\",\"build_num\":8},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"81281cf9412b5cc6b6b30b36ef439a40303edf3a\",\"build_num\":9,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"reset_password\",\"body\":\"\",\"author_date\":\"2014-04-15T19:32:18+08:00\",\"committer_date\":\"2014-04-15T19:32:18+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/81281cf9412b5cc6b6b30b36ef439a40303edf3a\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Reset password\",\"commit\":\"81281cf9412b5cc6b6b30b36ef439a40303edf3a\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/9\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-15T11:32:41.265Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-15T10:38:06.758Z\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T18:29:14+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64638,\"public_ip_addr\":\"54.80.176.113\"}],\"committer_date\":\"2014-04-15T18:29:14+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/633ddfcb08b4...28d77d4af363\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":53004,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-15T10:38:07.622Z\",\"stop_time\":\"2014-04-15T10:39:00.626Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Implements user registration\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":25944,\"status\":\"success\",\"build_num\":7},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"28d77d4af363c86db49ebdaccc73c690d672b77f\",\"build_num\":8,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":25944,\"status\":\"success\",\"build_num\":7},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T16:35:15+08:00\",\"committer_date\":\"2014-04-15T16:35:15+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/c34f7a26d45414dcdd1e118b2a92d89289911451\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Minor UI update, with responsive layout\",\"commit\":\"c34f7a26d45414dcdd1e118b2a92d89289911451\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T16:57:20+08:00\",\"committer_date\":\"2014-04-15T16:57:20+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/fbe9958d6fdfcb41466debab3cb83b1d3e2cff08\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add sign in form\",\"commit\":\"fbe9958d6fdfcb41466debab3cb83b1d3e2cff08\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T17:27:39+08:00\",\"committer_date\":\"2014-04-15T17:27:39+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/4b29457f6b227e96329384d402a8c3e19ee8a977\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Create users_controller\",\"commit\":\"4b29457f6b227e96329384d402a8c3e19ee8a977\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-15T18:29:14+08:00\",\"committer_date\":\"2014-04-15T18:29:14+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/28d77d4af363c86db49ebdaccc73c690d672b77f\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Implements user registration\",\"commit\":\"28d77d4af363c86db49ebdaccc73c690d672b77f\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/8\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-15T10:38:07.001Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-14T09:31:06.663Z\",\"branch\":\"master\",\"body\":\"user login and admin backend\",\"author_date\":\"2014-04-14T17:31:04+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64693,\"public_ip_addr\":\"54.197.71.194\"}],\"committer_date\":\"2014-04-14T17:31:04+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/70d78f1a38de...633ddfcb08b4\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":25944,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-14T09:31:16.829Z\",\"stop_time\":\"2014-04-14T09:31:42.773Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #2 from tinkerbox/feature/backend\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":30555,\"status\":\"success\",\"build_num\":5},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"633ddfcb08b49c32e1ce15917e8374260345b323\",\"build_num\":7,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":30555,\"status\":\"success\",\"build_num\":5},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-14T12:26:35+08:00\",\"committer_date\":\"2014-04-14T12:26:35+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/ddbb041a10ab93805fea57b3ca73273656e46260\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds user login modal\",\"commit\":\"ddbb041a10ab93805fea57b3ca73273656e46260\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-14T14:51:09+08:00\",\"committer_date\":\"2014-04-14T14:51:09+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/6729789f0916fdffaea5a73f0f5edd3ace3d2ccc\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Implements user login\",\"commit\":\"6729789f0916fdffaea5a73f0f5edd3ace3d2ccc\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-14T16:42:17+08:00\",\"committer_date\":\"2014-04-14T16:42:17+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/31be5f5e6089f5b3eaac654614e1d94c7d2cfc5e\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update spec\",\"commit\":\"31be5f5e6089f5b3eaac654614e1d94c7d2cfc5e\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Add user role\",\"author_date\":\"2014-04-14T17:04:17+08:00\",\"committer_date\":\"2014-04-14T17:04:17+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/d7f8f38466b719a537745683ebd3e1e6a96ff667\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add basic user authority\",\"commit\":\"d7f8f38466b719a537745683ebd3e1e6a96ff667\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"user login and admin backend\",\"author_date\":\"2014-04-14T17:31:04+08:00\",\"committer_date\":\"2014-04-14T17:31:04+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/633ddfcb08b49c32e1ce15917e8374260345b323\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #2 from tinkerbox/feature/backend\",\"commit\":\"633ddfcb08b49c32e1ce15917e8374260345b323\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/7\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-14T09:31:16.650Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-14T09:29:34.342Z\",\"branch\":\"feature/backend\",\"body\":\"- Add user role\",\"author_date\":\"2014-04-14T17:04:17+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64580,\"public_ip_addr\":\"54.197.71.194\"}],\"committer_date\":\"2014-04-14T17:04:17+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/ddbb041a10ab^...d7f8f38466b7\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":33882,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-14T09:29:34.562Z\",\"stop_time\":\"2014-04-14T09:30:08.444Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Add basic user authority\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":35502,\"status\":\"success\",\"build_num\":4},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"d7f8f38466b719a537745683ebd3e1e6a96ff667\",\"build_num\":6,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":35502,\"status\":\"success\",\"build_num\":4},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"\",\"author_date\":\"2014-04-14T12:26:35+08:00\",\"committer_date\":\"2014-04-14T12:26:35+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/ddbb041a10ab93805fea57b3ca73273656e46260\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Adds user login modal\",\"commit\":\"ddbb041a10ab93805fea57b3ca73273656e46260\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"\",\"author_date\":\"2014-04-14T14:51:09+08:00\",\"committer_date\":\"2014-04-14T14:51:09+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/6729789f0916fdffaea5a73f0f5edd3ace3d2ccc\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Implements user login\",\"commit\":\"6729789f0916fdffaea5a73f0f5edd3ace3d2ccc\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"\",\"author_date\":\"2014-04-14T16:42:17+08:00\",\"committer_date\":\"2014-04-14T16:42:17+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/31be5f5e6089f5b3eaac654614e1d94c7d2cfc5e\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update spec\",\"commit\":\"31be5f5e6089f5b3eaac654614e1d94c7d2cfc5e\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"- Add user role\",\"author_date\":\"2014-04-14T17:04:17+08:00\",\"committer_date\":\"2014-04-14T17:04:17+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/d7f8f38466b719a537745683ebd3e1e6a96ff667\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Add basic user authority\",\"commit\":\"d7f8f38466b719a537745683ebd3e1e6a96ff667\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/6\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-14T09:29:34.425Z\"},{\"dont_build\":null,\"committer_name\":\"Shinn Chong\",\"usage_queued_at\":\"2014-04-11T10:53:27.477Z\",\"branch\":\"master\",\"body\":\"Backend implementation #1\",\"author_date\":\"2014-04-11T18:53:26+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64583,\"public_ip_addr\":\"54.81.155.110\"}],\"committer_date\":\"2014-04-11T18:53:26+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/4c96ed888c24...70d78f1a38de\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":30555,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-11T10:53:30.173Z\",\"stop_time\":\"2014-04-11T10:54:00.728Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Merge pull request #1 from tinkerbox/feature/backend\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":38025,\"status\":\"success\",\"build_num\":3},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"70d78f1a38de222ffbab42e2363ce9e9cdfec20d\",\"build_num\":5,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":38025,\"status\":\"success\",\"build_num\":3},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- With admin namespaced\\n  - Update readme\",\"author_date\":\"2014-04-11T16:21:53+08:00\",\"committer_date\":\"2014-04-11T16:21:53+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/37e1d4393726fe0636225042965a44316868aaec\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Scaffold user backend\",\"commit\":\"37e1d4393726fe0636225042965a44316868aaec\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-11T17:07:48+08:00\",\"committer_date\":\"2014-04-11T17:07:48+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/c4da5b28816d2c91c6d306f3e9974db90b5669c3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Create responsive nav bar\",\"commit\":\"c4da5b28816d2c91c6d306f3e9974db90b5669c3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-11T18:50:19+08:00\",\"committer_date\":\"2014-04-11T18:50:19+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/85bc90b9cf8df09ce7f09de88009e1756d4500b3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Create admin index page\",\"commit\":\"85bc90b9cf8df09ce7f09de88009e1756d4500b3\",\"author_name\":\"shinn\"},{\"committer_name\":\"Shinn Chong\",\"branch\":\"master\",\"body\":\"Backend implementation #1\",\"author_date\":\"2014-04-11T18:53:26+08:00\",\"committer_date\":\"2014-04-11T18:53:26+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/70d78f1a38de222ffbab42e2363ce9e9cdfec20d\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Merge pull request #1 from tinkerbox/feature/backend\",\"commit\":\"70d78f1a38de222ffbab42e2363ce9e9cdfec20d\",\"author_name\":\"Shinn Chong\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/5\",\"feature_flags\":{},\"author_name\":\"Shinn Chong\",\"queued_at\":\"2014-04-11T10:53:27.746Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-11T10:51:22.687Z\",\"branch\":\"feature/backend\",\"body\":\"\",\"author_date\":\"2014-04-11T18:50:19+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64592,\"public_ip_addr\":\"54.80.48.156\"}],\"committer_date\":\"2014-04-11T18:50:19+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/37e1d4393726^...85bc90b9cf8d\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":35502,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-11T10:51:22.796Z\",\"stop_time\":\"2014-04-11T10:51:58.298Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Create admin index page\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":38025,\"status\":\"success\",\"build_num\":3},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"85bc90b9cf8df09ce7f09de88009e1756d4500b3\",\"build_num\":4,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"- With admin namespaced\\n  - Update readme\",\"author_date\":\"2014-04-11T16:21:53+08:00\",\"committer_date\":\"2014-04-11T16:21:53+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/37e1d4393726fe0636225042965a44316868aaec\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Scaffold user backend\",\"commit\":\"37e1d4393726fe0636225042965a44316868aaec\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"\",\"author_date\":\"2014-04-11T17:07:48+08:00\",\"committer_date\":\"2014-04-11T17:07:48+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/c4da5b28816d2c91c6d306f3e9974db90b5669c3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Create responsive nav bar\",\"commit\":\"c4da5b28816d2c91c6d306f3e9974db90b5669c3\",\"author_name\":\"shinn\"},{\"committer_name\":\"shinn\",\"branch\":\"backend\",\"body\":\"\",\"author_date\":\"2014-04-11T18:50:19+08:00\",\"committer_date\":\"2014-04-11T18:50:19+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/85bc90b9cf8df09ce7f09de88009e1756d4500b3\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Create admin index page\",\"commit\":\"85bc90b9cf8df09ce7f09de88009e1756d4500b3\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/4\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-11T10:51:22.755Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-11T06:25:23.370Z\",\"branch\":\"master\",\"body\":\"- Add badges\\n - Add test coverage indicator\",\"author_date\":\"2014-04-11T14:24:43+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64544,\"public_ip_addr\":\"54.198.168.35\"}],\"committer_date\":\"2014-04-11T14:24:43+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/cdc652b831eb...4c96ed888c24\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":38025,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-11T06:25:24.149Z\",\"stop_time\":\"2014-04-11T06:26:02.174Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Update readme\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":{\"build_time_millis\":24420,\"status\":\"fixed\",\"build_num\":2},\"outcome\":\"success\",\"status\":\"success\",\"vcs_revision\":\"4c96ed888c24bd3ecc4ab189dbc2af8aa1084e64\",\"build_num\":3,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":24420,\"status\":\"fixed\",\"build_num\":2},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"- Add badges\\n - Add test coverage indicator\",\"author_date\":\"2014-04-11T14:24:43+08:00\",\"committer_date\":\"2014-04-11T14:24:43+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/4c96ed888c24bd3ecc4ab189dbc2af8aa1084e64\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Update readme\",\"commit\":\"4c96ed888c24bd3ecc4ab189dbc2af8aa1084e64\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/3\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-11T06:25:23.587Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-11T05:39:13.276Z\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-11T13:38:12+08:00\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64537,\"public_ip_addr\":\"54.196.214.78\"}],\"committer_date\":\"2014-04-11T13:38:12+08:00\",\"compare\":\"https://github.com/tinkerbox/iamplus/compare/168c7549dedb...cdc652b831eb\",\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":24420,\"why\":\"github\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-11T05:39:13.537Z\",\"stop_time\":\"2014-04-11T05:39:37.957Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Fix failing test\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":null,\"outcome\":\"success\",\"status\":\"fixed\",\"vcs_revision\":\"cdc652b831eb646af4a9c94c13cbd3d591798007\",\"build_num\":2,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":{\"build_time_millis\":243008,\"status\":\"failed\",\"build_num\":1},\"all_commit_details\":[{\"committer_name\":\"shinn\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-11T13:38:12+08:00\",\"committer_date\":\"2014-04-11T13:38:12+08:00\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/cdc652b831eb646af4a9c94c13cbd3d591798007\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Fix failing test\",\"commit\":\"cdc652b831eb646af4a9c94c13cbd3d591798007\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":null,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/2\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-11T05:39:13.423Z\"},{\"dont_build\":null,\"committer_name\":\"shinn\",\"usage_queued_at\":\"2014-04-11T04:24:25.098Z\",\"branch\":\"master\",\"body\":\"\",\"author_date\":\"2014-04-11T03:35:46Z\",\"node\":[{\"username\":\"ubuntu\",\"ssh_enabled\":null,\"port\":64788,\"public_ip_addr\":\"54.227.156.243\"}],\"committer_date\":\"2014-04-11T03:35:46Z\",\"compare\":null,\"retries\":null,\"parallel\":1,\"committer_email\":\"[email protected]\",\"build_time_millis\":243008,\"why\":\"first-build\",\"author_email\":\"[email protected]\",\"ssh_enabled\":null,\"start_time\":\"2014-04-11T04:24:25.375Z\",\"stop_time\":\"2014-04-11T04:28:28.383Z\",\"lifecycle\":\"finished\",\"user\":{\"is_user\":true,\"login\":\"shinnyx\",\"name\":\"Shinn Chong\",\"email\":\"[email protected]\"},\"subject\":\"Apply bootstrap styling\",\"messages\":[],\"job_name\":null,\"retry_of\":null,\"previous_successful_build\":null,\"outcome\":\"failed\",\"status\":\"failed\",\"vcs_revision\":\"168c7549dedbf607bd0a5d179fd2d266853bcafb\",\"build_num\":1,\"username\":\"tinkerbox\",\"vcs_url\":\"https://github.com/tinkerbox/iamplus\",\"timedout\":false,\"previous\":null,\"all_commit_details\":[{\"committer_name\":\"shinn\",\"body\":\"\",\"author_date\":\"2014-04-11T03:35:46Z\",\"committer_date\":\"2014-04-11T03:35:46Z\",\"commit_url\":\"https://github.com/tinkerbox/iamplus/commit/168c7549dedbf607bd0a5d179fd2d266853bcafb\",\"committer_email\":\"[email protected]\",\"author_email\":\"[email protected]\",\"subject\":\"Apply bootstrap styling\",\"commit\":\"168c7549dedbf607bd0a5d179fd2d266853bcafb\",\"author_name\":\"shinn\"}],\"canceled\":false,\"infrastructure_fail\":false,\"failed\":true,\"reponame\":\"iamplus\",\"build_url\":\"https://circleci.com/gh/tinkerbox/iamplus/1\",\"feature_flags\":{},\"author_name\":\"shinn\",\"queued_at\":\"2014-04-11T04:24:25.244Z\"}]"

from circleci.

startling avatar startling commented on September 22, 2024

Could you edit your comment to use code fences? If you put ```` before and after it, it'll be formatted correctly:

````
This is code!
````

from circleci.

ugoa avatar ugoa commented on September 22, 2024

I tried, it cannot be recognized by the parser.
But the problem is quite simple, there are extra " and " marks around the array so it becomes a string.

from circleci.

ugoa avatar ugoa commented on September 22, 2024

After some research, I tried the following code in terminal:

JSON.parse(res.body)

Then I got this exception:

Encoding::InvalidByteSequenceError: "\xE2" on US-ASCII
from /Users/David/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/json/common.rb:155:in `encode'

I think the response.body cannot be parsed into an Array by JSON, because there are some rare characters in the build message.

from circleci.

startling avatar startling commented on September 22, 2024

Aha. We serve our JSON as utf-8; it looks like the gem is decoding that wrong. There's some curly quotes () in tinkerbox/uniclimb, which I think are causing the problem.

from circleci.

mtchavez avatar mtchavez commented on September 22, 2024

So a few things

  1. I wrapped that long text in a markdown code block
  2. I was unable to reproduce an Encoding::InvalidByteSequenceError
    • I tried to reproduce on ruby 1.9.3, 2.0.0, and 2.1.1
    • Forcing a string to be US-ASCII on the example you gave \xE2 could still be parsed
  3. If Circle is returning everything as UTF-8 then at some point when the string is coming into ruby code it is determining it to be some kind of binary string format for whatever reason.
  4. I am not sure the curly quote is a problem. I think that is a unicode character which is covered under UTF-8. I could be wrong though.

PR #8 addresses a fix for making sure all strings are forced to be encoded in UTF-8. It also will now return a non-successful response if JSON cannot be parsed as pointed out by @startling to be confusing and inconsistent.

@ugoa Please try version 0.0.5 and let me know if things are fixed.

from circleci.

ugoa avatar ugoa commented on September 22, 2024

Hi @mtchavez , sorry for replying late. Yeah they are fixed in v0.0.5, many thanks for your work. And @startling thank you too. 👍

from circleci.

mtchavez avatar mtchavez commented on September 22, 2024

Cool good to hear.

from circleci.

startling avatar startling commented on September 22, 2024

Thanks for sorting this out!

from circleci.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.