Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Code with Confidence Blrdroid

Code with Confidence Blrdroid

Avatar for bangarharshit

bangarharshit

September 12, 2018

More Decks by bangarharshit

Other Decks in Programming

Transcript

  1. Confidence • App • Frameworks - Ribs/Plugins • Tooling -

    Error-prone/Nullaway/Lint/Checkstyle/Gojf
  2. Confidence • App • Frameworks - Ribs/Plugins • Tooling -

    Error-prone/Nullaway/Lint/Checkstyle/Gojf • Code
  3. Confidence • App • Frameworks - Ribs/Plugins • Tooling -

    Error-prone/Nullaway/Lint/Checkstyle/Gojf • Code • UI Test
  4. Error Prone • Catch common Java mistakes as compile-time errors

    • Demo • Compiler Arguments • Refaster
  5. Error Prone • Catch common Java mistakes as compile-time errors

    • Demo • Compiler Arguments • Refaster • Suppression
  6. Nullaway • A tool to help eliminate NullPointerExceptions (NPEs) in

    your Java code with low build-time overheadDemo
  7. Nullaway • A tool to help eliminate NullPointerExceptions (NPEs) in

    your Java code with low build-time overheadDemo • Demo
  8. Nullaway • A tool to help eliminate NullPointerExceptions (NPEs) in

    your Java code with low build-time overheadDemo • Demo • Initializers
  9. Nullaway • A tool to help eliminate NullPointerExceptions (NPEs) in

    your Java code with low build-time overheadDemo • Demo • Initializers • Library Models
  10. Gojf • Reformats Java source code to comply with Google

    Java Style • Gradle task Demo • Pre hook
  11. Phabricator • Differential - code reviews • Maniphest - task

    • Phriction - wiki • Herald - business rule
  12. Network replay/record OkReplayInterceptor okReplayInterceptor = new OkReplayInterceptor(); OkHttpClient client =

    new OkHttpClient.Builder() .addInterceptor(okReplayInterceptor) .build()
  13. Network replay/record OkReplayInterceptor okReplayInterceptor = new OkReplayInterceptor(); OkHttpClient client =

    new OkHttpClient.Builder() .addInterceptor(okReplayInterceptor) .build()
  14. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass()))
  15. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY
  16. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true)
  17. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor))
  18. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build();
  19. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule =
  20. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get();
  21. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get();
  22. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test
  23. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test @OkReplay
  24. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test @OkReplay public void testFooBar() {
  25. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test @OkReplay public void testFooBar() { // write your test as usual...
  26. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test @OkReplay public void testFooBar() { // write your test as usual... }
  27. Network replay/record private final ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<>(MainActivity.class); private

    final OkReplayConfig configuration = new OkReplayConfig.Builder() .tapeRoot(new AndroidTapeRoot(getContext(), getClass())) .defaultMode(TapeMode.READ_WRITE) // or TapeMode.READ_ONLY .sslEnabled(true) .interceptor(okReplayInterceptor)) .build(); @Rule public final TestRule testRule = new OkReplayRuleChain(configuration, activityTestRule).get(); @Test @OkReplay public void testFooBar() { // write your test as usual... }
  28. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers:
  29. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers:
  30. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json
  31. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json
  32. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response:
  33. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response:
  34. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200
  35. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200
  36. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers:
  37. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers:
  38. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*'
  39. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*'
  40. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60
  41. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60
  42. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none'
  43. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none'
  44. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8
  45. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8
  46. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT
  47. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT
  48. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com
  49. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com
  50. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  51. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  52. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  53. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  54. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  55. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  56. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  57. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  58. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  59. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  60. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  61. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  62. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  63. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  64. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  65. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  66. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  67. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  68. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  69. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK
  70. Network replay/record !tape name: bar interactions: - recorded: 2017-05-22T22:21:04.501Z request:

    method: GET uri: https://api.github.com/users/felipecsl/repos headers: Accept: application/vnd.github.v3+json response: status: 200 headers: Access-Control-Allow-Origin: '*' Cache-Control: public, max-age=60, s-maxage=60 Content-Security-Policy: default-src 'none' Content-Type: application/json; charset=utf-8 Date: Mon, 22 May 2017 22:21:04 GMT Server: GitHub.com Status: 200 OK