notionrb 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/.devcontainer/Dockerfile +5 -0
  3. data/.devcontainer/boot.sh +1 -0
  4. data/.devcontainer/devcontainer.json +30 -0
  5. data/.github/workflows/ci.yml +15 -0
  6. data/.github/workflows/rubocop.yml +17 -0
  7. data/.gitignore +7 -0
  8. data/.rspec +2 -0
  9. data/.rubocop.yml +55 -0
  10. data/.rubocop_todo.yml +86 -0
  11. data/CHANGELOG.md +144 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +51 -0
  14. data/Gemfile +4 -0
  15. data/Gemfile.lock +95 -0
  16. data/LICENSE.md +21 -0
  17. data/README.md +677 -0
  18. data/Rakefile +18 -0
  19. data/bin/console +31 -0
  20. data/lib/notion/api/endpoints/blocks.rb +100 -0
  21. data/lib/notion/api/endpoints/comments.rb +61 -0
  22. data/lib/notion/api/endpoints/data_sources.rb +102 -0
  23. data/lib/notion/api/endpoints/databases.rb +134 -0
  24. data/lib/notion/api/endpoints/pages.rb +95 -0
  25. data/lib/notion/api/endpoints/search.rb +41 -0
  26. data/lib/notion/api/endpoints/users.rb +48 -0
  27. data/lib/notion/api/endpoints.rb +23 -0
  28. data/lib/notion/api/error.rb +6 -0
  29. data/lib/notion/api/errors/internal_error.rb +12 -0
  30. data/lib/notion/api/errors/notion_error.rb +15 -0
  31. data/lib/notion/api/errors/too_many_requests.rb +15 -0
  32. data/lib/notion/api/errors.rb +23 -0
  33. data/lib/notion/client.rb +28 -0
  34. data/lib/notion/config.rb +54 -0
  35. data/lib/notion/faraday/connection.rb +37 -0
  36. data/lib/notion/faraday/request.rb +45 -0
  37. data/lib/notion/faraday/response/raise_error.rb +31 -0
  38. data/lib/notion/faraday/response/wrap_error.rb +22 -0
  39. data/lib/notion/logger.rb +14 -0
  40. data/lib/notion/messages/message.rb +17 -0
  41. data/lib/notion/pagination/cursor.rb +53 -0
  42. data/lib/notion/version.rb +5 -0
  43. data/lib/notion-ruby-client.rb +28 -0
  44. data/lib/notion.rb +2 -0
  45. data/lib/notion_ruby_client.rb +2 -0
  46. data/notionrb.gemspec +31 -0
  47. data/spec/fixtures/notion/block.yml +146 -0
  48. data/spec/fixtures/notion/block_append_children.yml +149 -0
  49. data/spec/fixtures/notion/block_children.yml +152 -0
  50. data/spec/fixtures/notion/create_data_source.yml +29 -0
  51. data/spec/fixtures/notion/create_database.yml +149 -0
  52. data/spec/fixtures/notion/create_discussion_comment.yml +110 -0
  53. data/spec/fixtures/notion/create_page.yml +152 -0
  54. data/spec/fixtures/notion/create_page_comment.yml +110 -0
  55. data/spec/fixtures/notion/create_page_with_data_source.yml +29 -0
  56. data/spec/fixtures/notion/create_page_with_parent_page.yml +128 -0
  57. data/spec/fixtures/notion/data_source.yml +27 -0
  58. data/spec/fixtures/notion/data_source_query.yml +29 -0
  59. data/spec/fixtures/notion/database.yml +150 -0
  60. data/spec/fixtures/notion/database_query.yml +154 -0
  61. data/spec/fixtures/notion/delete_block.yml +145 -0
  62. data/spec/fixtures/notion/page.yml +150 -0
  63. data/spec/fixtures/notion/page_property_item.yml +143 -0
  64. data/spec/fixtures/notion/paginated_block_children.yml +575 -0
  65. data/spec/fixtures/notion/paginated_data_source_query.yml +29 -0
  66. data/spec/fixtures/notion/paginated_database_query.yml +152 -0
  67. data/spec/fixtures/notion/paginated_databases_list.yml +150 -0
  68. data/spec/fixtures/notion/paginated_search.yml +301 -0
  69. data/spec/fixtures/notion/paginated_users_list.yml +146 -0
  70. data/spec/fixtures/notion/retrieve_comments.yml +106 -0
  71. data/spec/fixtures/notion/search.yml +160 -0
  72. data/spec/fixtures/notion/search_with_query.yml +152 -0
  73. data/spec/fixtures/notion/update_block.yml +148 -0
  74. data/spec/fixtures/notion/update_data_source.yml +29 -0
  75. data/spec/fixtures/notion/update_database.yml +152 -0
  76. data/spec/fixtures/notion/update_page.yml +152 -0
  77. data/spec/fixtures/notion/users.yml +145 -0
  78. data/spec/fixtures/notion/users_list.yml +146 -0
  79. data/spec/fixtures/notion/users_me.yml +144 -0
  80. data/spec/notion/api/endpoints/blocks_spec.rb +72 -0
  81. data/spec/notion/api/endpoints/comments_spec.rb +49 -0
  82. data/spec/notion/api/endpoints/data_sources_spec.rb +61 -0
  83. data/spec/notion/api/endpoints/databases_spec.rb +70 -0
  84. data/spec/notion/api/endpoints/pages_spec.rb +127 -0
  85. data/spec/notion/api/endpoints/search_spec.rb +26 -0
  86. data/spec/notion/api/endpoints/users_spec.rb +31 -0
  87. data/spec/notion/config_spec.rb +16 -0
  88. data/spec/notion/pagination/cursor_spec.rb +126 -0
  89. data/spec/notion/version_spec.rb +8 -0
  90. data/spec/spec_helper.rb +22 -0
  91. data/spec/support/token.rb +10 -0
  92. data/spec/support/vcr.rb +16 -0
  93. metadata +358 -0
@@ -0,0 +1,152 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.notion.com/v1/pages
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"parent":{"database_id":"dd428e9d-d3fe-4171-870d-a7a1902c748b"},"properties":{"Name":{"title":[{"text":{"content":"Another
9
+ Notion page"}}]}},"children":[{"object":"block","type":"heading_2","heading_2":{"rich_text":[{"type":"text","text":{"content":"A
10
+ heading"}}]}}]}'
11
+ headers:
12
+ Accept:
13
+ - application/json; charset=utf-8
14
+ User-Agent:
15
+ - Notion Ruby Client/0.0.8
16
+ Authorization:
17
+ - Bearer <NOTION_API_TOKEN>
18
+ Notion-Version:
19
+ - '2022-02-22'
20
+ Content-Type:
21
+ - application/json
22
+ Accept-Encoding:
23
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Date:
30
+ - Sun, 29 Aug 2021 17:51:21 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Connection:
36
+ - keep-alive
37
+ X-Dns-Prefetch-Control:
38
+ - 'off'
39
+ X-Frame-Options:
40
+ - SAMEORIGIN
41
+ Strict-Transport-Security:
42
+ - max-age=5184000; includeSubDomains
43
+ X-Download-Options:
44
+ - noopen
45
+ X-Content-Type-Options:
46
+ - nosniff
47
+ X-Xss-Protection:
48
+ - 1; mode=block
49
+ Referrer-Policy:
50
+ - same-origin
51
+ Content-Security-Policy:
52
+ - 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
53
+ https://apis.google.com https://api.amplitude.com https://widget.intercom.io
54
+ https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
55
+ https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
56
+ https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
57
+ https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
58
+ https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
59
+ https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
60
+ https://user-data.mutinycdn.com; connect-src ''self'' https://msgstore.www.notion.so
61
+ wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
62
+ https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
63
+ https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
64
+ https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
65
+ https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
66
+ https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
67
+ https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
68
+ https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
69
+ https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
70
+ https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
71
+ https://pgncd.notion.so; font-src ''self'' data: https://cdnjs.cloudflare.com
72
+ https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
73
+ https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
74
+ www.googletagmanager.com; style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com
75
+ https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
76
+ https://ton.twimg.com; frame-src https: http:; media-src https: http:'
77
+ X-Content-Security-Policy:
78
+ - 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
79
+ https://apis.google.com https://api.amplitude.com https://widget.intercom.io
80
+ https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
81
+ https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
82
+ https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
83
+ https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
84
+ https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
85
+ https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
86
+ https://user-data.mutinycdn.com; connect-src ''self'' https://msgstore.www.notion.so
87
+ wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
88
+ https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
89
+ https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
90
+ https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
91
+ https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
92
+ https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
93
+ https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
94
+ https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
95
+ https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
96
+ https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
97
+ https://pgncd.notion.so; font-src ''self'' data: https://cdnjs.cloudflare.com
98
+ https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
99
+ https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
100
+ www.googletagmanager.com; style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com
101
+ https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
102
+ https://ton.twimg.com; frame-src https: http:; media-src https: http:'
103
+ X-Webkit-Csp:
104
+ - 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
105
+ https://apis.google.com https://api.amplitude.com https://widget.intercom.io
106
+ https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
107
+ https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
108
+ https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
109
+ https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
110
+ https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
111
+ https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
112
+ https://user-data.mutinycdn.com; connect-src ''self'' https://msgstore.www.notion.so
113
+ wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
114
+ https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
115
+ https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
116
+ https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
117
+ https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
118
+ https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
119
+ https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
120
+ https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
121
+ https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
122
+ https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
123
+ https://pgncd.notion.so; font-src ''self'' data: https://cdnjs.cloudflare.com
124
+ https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
125
+ https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
126
+ www.googletagmanager.com; style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com
127
+ https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
128
+ https://ton.twimg.com; frame-src https: http:; media-src https: http:'
129
+ Set-Cookie:
130
+ - notion_browser_id=238ab41f-5d9b-4783-9647-b2b163d0b104; Domain=www.notion.so;
131
+ Path=/; Expires=Wed, 07 May 2053 19:38:01 GMT; Secure
132
+ Etag:
133
+ - W/"3b7-aPgFx6vlWUURM5t7oOF9iPfEHms"
134
+ Vary:
135
+ - Accept-Encoding
136
+ Cf-Cache-Status:
137
+ - DYNAMIC
138
+ Expect-Ct:
139
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
140
+ Server:
141
+ - cloudflare
142
+ Cf-Ray:
143
+ - 6867a07999cd32c5-CDG
144
+ body:
145
+ encoding: UTF-8
146
+ string: '{"object":"page","id":"49b5505c-9b0b-4be0-850d-570db310dea3","created_time":"2021-08-29T17:51:00.000Z","last_edited_time":"2021-08-29T17:51:00.000Z","cover":null,"icon":null,"parent":{"type":"database_id","database_id":"dd428e9d-d3fe-4171-870d-a7a1902c748b"},"archived":false,"properties":{"Orbit
147
+ Status":{"id":"%3DadK","type":"rich_text","rich_text":[]},"Orbit Note URL":{"id":"L%3AsP","type":"url","url":null},"Member
148
+ Email":{"id":"%5BIFC","type":"email","email":null},"Send to Orbit":{"id":"%5EoR%3F","type":"checkbox","checkbox":false},"Date":{"id":"g%60km","type":"date","date":null},"Name":{"id":"title","type":"title","title":[{"type":"text","text":{"content":"Another
149
+ Notion page","link":null},"annotations":{"bold":false,"italic":false,"strikethrough":false,"underline":false,"code":false,"color":"default"},"plain_text":"Another
150
+ Notion page","href":null}]}},"url":"https://www.notion.so/Another-Notion-page-49b5505c9b0b4be0850d570db310dea3"}'
151
+ recorded_at: Sun, 29 Aug 2021 17:51:21 GMT
152
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,110 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.notion.com/v1/comments
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"rich_text":[{"text":{"content":"test comment"}}],"parent":{"page_id":"3e4bc91d36c74de595113b31c6fdb82c"}}'
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ User-Agent:
13
+ - Notion Ruby Client/1.0.0
14
+ Authorization:
15
+ - Bearer <NOTION_API_TOKEN>
16
+ Notion-Version:
17
+ - '2022-02-22'
18
+ Content-Type:
19
+ - application/json
20
+ Accept-Encoding:
21
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Date:
28
+ - Fri, 02 Sep 2022 16:26:31 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Set-Cookie:
36
+ - notion_browser_id=fd495a20-5f77-4a87-a210-adb2144bd55b; Domain=www.notion.so;
37
+ Path=/; Expires=Sat, 02 Sep 2023 16:26:31 GMT; Secure
38
+ - notion_check_cookie_consent=false; Domain=www.notion.so; Path=/; Expires=Sat,
39
+ 03 Sep 2022 16:26:31 GMT; Secure
40
+ Content-Security-Policy:
41
+ - "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://gist.github.com https://apis.google.com
42
+ https://www.google.com https://www.gstatic.com https://cdn.amplitude.com https://api.amplitude.com
43
+ https://hkfxbbdzib.notion.so https://widget.intercom.io https://js.intercomcdn.com
44
+ https://static.zdassets.com https://api.smooch.io\t https://logs-01.loggly.com
45
+ https://http-inputs-notion.splunkcloud.com https://cdn.segment.com https://analytics.pgncs.notion.so
46
+ https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
47
+ https://embed.typeform.com https://admin.typeform.com https://public.profitwell.com
48
+ js.sentry-cdn.com https://js.chilipiper.com https://platform.twitter.com https://cdn.syndication.twimg.com
49
+ https://accounts.google.com www.googletagmanager.com https://www.googleadservices.com
50
+ https://googleads.g.doubleclick.net https://api-v2.mutinyhq.io https://client-registry.mutinycdn.com
51
+ https://client.mutinycdn.com https://user-data.mutinycdn.com;connect-src 'self'
52
+ https://msgstore.www.notion.so wss://msgstore.www.notion.so ws://localhost:*
53
+ ws://127.0.0.1:* https://notion-emojis.s3-us-west-2.amazonaws.com https://s3-us-west-2.amazonaws.com
54
+ https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
55
+ https://cdn.amplitude.com https://api.amplitude.com https://hkfxbbdzib.notion.so
56
+ https://www.notion.so https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io
57
+ https://uploads.intercomcdn.com wss://nexus-websocket-a.intercom.io https://ekr.zdassets.com
58
+ https://ekr.zendesk.com\t https://makenotion.zendesk.com\t https://api.smooch.io\t
59
+ wss://api.smooch.io\t https://logs-01.loggly.com https://http-inputs-notion.splunkcloud.com
60
+ https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
61
+ https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
62
+ https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
63
+ https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
64
+ https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
65
+ https://accounts.google.com https://oauth2.googleapis.com https://www.googleadservices.com
66
+ https://googleads.g.doubleclick.net https://region1.google-analytics.com https://region1.analytics.google.com
67
+ https://www.google-analytics.com https://api-v2.mutinyhq.io https://client-registry.mutinycdn.com
68
+ https://client.mutinycdn.com https://user-data.mutinycdn.com https://api.statuspage.io
69
+ https://pgncd.notion.so https://api.statsig.com https://statsigapi.net https://exp.notion.so
70
+ https://file.notion.so;font-src 'self' data: https://cdnjs.cloudflare.com
71
+ https://js.intercomcdn.com;img-src 'self' data: blob: https: https://platform.twitter.com
72
+ https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
73
+ https://region1.google-analytics.com https://region1.analytics.google.com;style-src
74
+ 'self' 'unsafe-inline' https://cdnjs.cloudflare.com https://github.githubassets.com
75
+ https://js.chilipiper.com https://platform.twitter.com https://ton.twimg.com
76
+ https://accounts.google.com;frame-src https: http: https://accounts.google.com;media-src
77
+ https: http: https://file.notion.so"
78
+ X-Dns-Prefetch-Control:
79
+ - 'off'
80
+ X-Frame-Options:
81
+ - SAMEORIGIN
82
+ Strict-Transport-Security:
83
+ - max-age=5184000; includeSubDomains
84
+ X-Download-Options:
85
+ - noopen
86
+ X-Content-Type-Options:
87
+ - nosniff
88
+ X-Permitted-Cross-Domain-Policies:
89
+ - none
90
+ Referrer-Policy:
91
+ - strict-origin-when-cross-origin
92
+ X-Xss-Protection:
93
+ - '0'
94
+ Etag:
95
+ - W/"24e-lwOvl3pLRgq3uaVwDU7YNYGeauA"
96
+ Vary:
97
+ - Accept-Encoding
98
+ Cf-Cache-Status:
99
+ - DYNAMIC
100
+ Server:
101
+ - cloudflare
102
+ Cf-Ray:
103
+ - 74479b9bdc202d94-ORD
104
+ body:
105
+ encoding: UTF-8
106
+ string: '{"object":"comment","id":"95ef4675-e3c0-428c-b937-ac8d6805ac04","parent":{"type":"page_id","page_id":"3e4bc91d-36c7-4de5-9511-3b31c6fdb82c"},"discussion_id":"4cbe01af-8163-4b03-957d-cac2691b9839","created_time":"2022-09-02T16:26:00.000Z","last_edited_time":"2022-09-02T16:26:00.000Z","created_by":{"object":"user","id":"3eb712e5-c1d7-43f2-ae18-c4d36f846aa1"},"rich_text":[{"type":"text","text":{"content":"test
107
+ comment","link":null},"annotations":{"bold":false,"italic":false,"strikethrough":false,"underline":false,"code":false,"color":"default"},"plain_text":"test
108
+ comment","href":null}]}'
109
+ recorded_at: Fri, 02 Sep 2022 16:26:31 GMT
110
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,29 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.notion.com/v1/pages
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"parent":{"data_source_id":"6a91c56ebc5e46699e34952e09ec53c0"},"properties":{"Name":{"title":[{"text":{"content":"Another Notion page"}}]}},"children":[]}'
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ Authorization:
13
+ - Bearer <NOTION_API_TOKEN>
14
+ Notion-Version:
15
+ - '2025-09-03'
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"object":"page","id":"c7fd1abe-8114-44ea-be77-9632ea33e581","created_time":"2021-04-30T07:49:00.000Z","last_edited_time":"2021-08-29T17:45:00.000Z","cover":null,"icon":null,"parent":{"type":"data_source_id","data_source_id":"6a91c56e-bc5e-4669-9e34-952e09ec53c0","database_id":"dd428e9d-d3fe-4171-870d-a7a1902c748b"},"archived":false,"properties":{"Name":{"id":"title","type":"title","title":[{"type":"text","text":{"content":"Another Notion page","link":null},"annotations":{"bold":false,"italic":false,"strikethrough":false,"underline":false,"code":false,"color":"default"},"plain_text":"Another Notion page","href":null}]}},"url":"https://www.notion.so/Another-Notion-page-c7fd1abe811444eabe779632ea33e581"}'
28
+ recorded_at: Wed, 03 Sep 2025 17:49:00 GMT
29
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,128 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.notion.com/v1/pages
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"parent":{"page_id":"0593a719ff2e44aaa14a2bf169429284"},"properties":{"title":[{"text":{"content":"Another
9
+ Notion page"}}]},"children":[{"object":"block","type":"heading_2","heading_2":{"rich_text":[{"type":"text","text":{"content":"My
10
+ Heading 2"}}]}}]}'
11
+ headers:
12
+ Accept:
13
+ - application/json; charset=utf-8
14
+ User-Agent:
15
+ - Notion Ruby Client/1.2.0
16
+ Authorization:
17
+ - Bearer <NOTION_API_TOKEN>
18
+ Notion-Version:
19
+ - '2022-02-22'
20
+ Content-Type:
21
+ - application/json
22
+ Accept-Encoding:
23
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Date:
30
+ - Sun, 26 Feb 2023 17:21:54 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Connection:
36
+ - keep-alive
37
+ Set-Cookie:
38
+ - __cf_bm=3uGTzmXnS9NSPlzB6MC25WX5a50pZafwabcoIG1k3mg-1677432114-0-AcTcZQhFHvWa2oYDeQ8RwgCXQcgn4zIPacEQnLYxg9MB0SGg74A/jZJePnsEBSNvZvZk9t9E1pL0T1zkr/KLHZE=;
39
+ path=/; expires=Sun, 26-Feb-23 17:51:54 GMT; domain=.notion.com; HttpOnly;
40
+ Secure; SameSite=None
41
+ - notion_browser_id=1d39e7da-f4cd-4161-ac33-b489ee848b04; Domain=www.notion.so;
42
+ Path=/; Expires=Mon, 26 Feb 2024 17:21:53 GMT; Secure
43
+ - notion_check_cookie_consent=false; Domain=www.notion.so; Path=/; Expires=Mon,
44
+ 27 Feb 2023 17:21:53 GMT; Secure
45
+ Content-Security-Policy:
46
+ - "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://gist.github.com https://apis.google.com
47
+ https://www.google.com https://www.gstatic.com https://cdn.amplitude.com https://api.amplitude.com
48
+ http://dev-embed.notion.co http://embed.notion.co https://widget.intercom.io
49
+ https://js.intercomcdn.com https://static.zdassets.com https://api.smooch.io\t
50
+ https://logs-01.loggly.com https://http-inputs-notion.splunkcloud.com https://cdn.segment.com
51
+ https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
52
+ https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
53
+ https://public.profitwell.com https://static.profitwell.com js.sentry-cdn.com
54
+ https://js.chilipiper.com https://platform.twitter.com https://cdn.syndication.twimg.com
55
+ https://accounts.google.com https://www.googletagmanager.com https://www.googleadservices.com
56
+ https://googleads.g.doubleclick.net https://api-v2.mutinyhq.io https://client-registry.mutinycdn.com
57
+ https://client.mutinycdn.com https://user-data.mutinycdn.com https://cdn.metadata.io
58
+ https://platformapi.metadata.io https://d2hrivdxn8ekm8.cloudfront.net https://d1lu3pmaz2ilpx.cloudfront.net
59
+ https://dvqigh9b7wa32.cloudfront.net https://d330aiyvva2oww.cloudfront.net
60
+ https://cdn.transcend.io https://cdn01.boxcdn.net https://cdn.sprig.com assets.customer.io
61
+ code.gist.build;connect-src 'self' data: blob: https://msgstore.www.notion.so
62
+ wss://msgstore.www.notion.so ws://localhost:* ws://127.0.0.1:* https://notion-emojis.s3-us-west-2.amazonaws.com
63
+ https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
64
+ https://cdn.amplitude.com https://api.amplitude.com https://www.notion.so
65
+ https://api.embed.ly http://dev-embed.notion.co http://embed.notion.co https://js.intercomcdn.com
66
+ https://api-iam.intercom.io https://uploads.intercomcdn.com wss://nexus-websocket-a.intercom.io
67
+ https://ekr.zdassets.com https://ekr.zendesk.com\t https://makenotion.zendesk.com\t
68
+ https://api.smooch.io\t wss://api.smooch.io\t https://logs-01.loggly.com https://http-inputs-notion.splunkcloud.com
69
+ https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
70
+ https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
71
+ https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
72
+ https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
73
+ https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
74
+ https://accounts.google.com https://oauth2.googleapis.com https://www.googletagmanager.com
75
+ https://analytics.google.com https://www.googleadservices.com https://googleads.g.doubleclick.net
76
+ https://region1.google-analytics.com https://region1.analytics.google.com
77
+ https://www.google-analytics.com https://api-v2.mutinyhq.io https://client-registry.mutinycdn.com
78
+ https://client.mutinycdn.com https://user-data.mutinycdn.com https://cdn.metadata.io
79
+ https://platformapi.metadata.io https://d2hrivdxn8ekm8.cloudfront.net https://d1lu3pmaz2ilpx.cloudfront.net
80
+ https://dvqigh9b7wa32.cloudfront.net https://d330aiyvva2oww.cloudfront.net
81
+ https://cdn.transcend.io https://telemetry.transcend.io https://api.statuspage.io
82
+ https://pgncd.notion.so https://api.statsig.com https://statsigapi.net https://exp.notion.so
83
+ https://file.notion.so notion://file.notion.so https://api.box.com https://*.mux.com
84
+ https://api.sprig.com https://storage.googleapis.com https://cdn.sprig.com
85
+ https://cdn.userleap.com track.customer.io *.api.gist.build *.cloud.gist.build;font-src
86
+ 'self' data: https://cdnjs.cloudflare.com https://js.intercomcdn.com https://cdn01.boxcdn.net;img-src
87
+ 'self' data: blob: https: https://platform.twitter.com https://syndication.twitter.com
88
+ https://pbs.twimg.com https://ton.twimg.com https://region1.google-analytics.com
89
+ https://region1.analytics.google.com https://file.notion.so notion://file.notion.so
90
+ https://*.mux.com track.customer.io;style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com
91
+ https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
92
+ https://ton.twimg.com https://accounts.google.com https://cdn.transcend.io
93
+ https://cdn01.boxcdn.net code.gist.build;media-src blob: https: http: https://file.notion.so
94
+ notion://file.notion.so https://*.mux.com;worker-src blob:;frame-src https:
95
+ http: https://accounts.google.com renderer.gist.build code.gist.build"
96
+ X-Dns-Prefetch-Control:
97
+ - 'off'
98
+ X-Frame-Options:
99
+ - SAMEORIGIN
100
+ Strict-Transport-Security:
101
+ - max-age=5184000; includeSubDomains
102
+ X-Download-Options:
103
+ - noopen
104
+ X-Content-Type-Options:
105
+ - nosniff
106
+ X-Permitted-Cross-Domain-Policies:
107
+ - none
108
+ Referrer-Policy:
109
+ - strict-origin-when-cross-origin
110
+ X-Xss-Protection:
111
+ - '0'
112
+ Etag:
113
+ - W/"31f-hsLSu/ULQ6imEDuQTPedr2r+doc"
114
+ Vary:
115
+ - Accept-Encoding
116
+ Cf-Cache-Status:
117
+ - DYNAMIC
118
+ Server:
119
+ - cloudflare
120
+ Cf-Ray:
121
+ - 79fa5c17e98d82f8-IAD
122
+ body:
123
+ encoding: UTF-8
124
+ string: '{"object":"page","id":"c40d2199-e67f-4e07-875d-29f6259e7101","created_time":"2023-02-26T17:21:00.000Z","last_edited_time":"2023-02-26T17:21:00.000Z","created_by":{"object":"user","id":"baa602ec-7138-420d-bce4-a7c6cf125aa4"},"last_edited_by":{"object":"user","id":"baa602ec-7138-420d-bce4-a7c6cf125aa4"},"cover":null,"icon":null,"parent":{"type":"page_id","page_id":"0593a719-ff2e-44aa-a14a-2bf169429284"},"archived":false,"properties":{"title":{"id":"title","type":"title","title":[{"type":"text","text":{"content":"Another
125
+ Notion page","link":null},"annotations":{"bold":false,"italic":false,"strikethrough":false,"underline":false,"code":false,"color":"default"},"plain_text":"Another
126
+ Notion page","href":null}]}},"url":"https://www.notion.so/Another-Notion-page-c40d2199e67f4e07875d29f6259e7101"}'
127
+ recorded_at: Sun, 26 Feb 2023 17:21:54 GMT
128
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,27 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.notion.com/v1/data_sources/6a91c56ebc5e46699e34952e09ec53c0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ Authorization:
13
+ - Bearer <NOTION_API_TOKEN>
14
+ Notion-Version:
15
+ - '2025-09-03'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ body:
24
+ encoding: UTF-8
25
+ string: "{\"object\":\"data_source\",\"id\":\"6a91c56e-bc5e-4669-9e34-952e09ec53c0\",\"created_time\":\"2021-04-30T07:49:00.000Z\",\"last_edited_time\":\"2021-08-29T17:48:00.000Z\",\"title\":[{\"type\":\"text\",\"text\":{\"content\":\"Orbit \U0001F49C Notion\",\"link\":null},\"annotations\":{\"bold\":false,\"italic\":false,\"strikethrough\":false,\"underline\":false,\"code\":false,\"color\":\"default\"},\"plain_text\":\"Orbit \U0001F49C Notion\",\"href\":null}],\"properties\":{\"Orbit Status\":{\"id\":\"%3DadK\",\"name\":\"Orbit Status\",\"type\":\"rich_text\",\"rich_text\":{}},\"Name\":{\"id\":\"title\",\"name\":\"Name\",\"type\":\"title\",\"title\":{}}},\"parent\":{\"type\":\"database_id\",\"database_id\":\"dd428e9d-d3fe-4171-870d-a7a1902c748b\"}}"
26
+ recorded_at: Wed, 03 Sep 2025 17:48:03 GMT
27
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,29 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.notion.com/v1/data_sources/6a91c56ebc5e46699e34952e09ec53c0/query
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json; charset=utf-8
12
+ Authorization:
13
+ - Bearer <NOTION_API_TOKEN>
14
+ Notion-Version:
15
+ - '2025-09-03'
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"object":"list","results":[{"object":"page","id":"c7fd1abe-8114-44ea-be77-9632ea33e581","created_time":"2021-04-30T07:49:00.000Z","last_edited_time":"2021-08-29T17:45:00.000Z","cover":null,"icon":null,"parent":{"type":"data_source_id","data_source_id":"6a91c56e-bc5e-4669-9e34-952e09ec53c0","database_id":"dd428e9d-d3fe-4171-870d-a7a1902c748b"},"archived":false,"properties":{"Name":{"id":"title","type":"title","title":[{"type":"text","text":{"content":"Nicolas Goutay","link":null},"annotations":{"bold":false,"italic":false,"strikethrough":false,"underline":false,"code":false,"color":"default"},"plain_text":"Nicolas Goutay","href":null}]}},"url":"https://www.notion.so/Nicolas-Goutay-c7fd1abe811444eabe779632ea33e581"}],"next_cursor":null,"has_more":false,"type":"page","page":{}}'
28
+ recorded_at: Wed, 03 Sep 2025 12:00:00 GMT
29
+ recorded_with: VCR 6.0.0