Add access source drivers

Add Driver interface and implementations for Google
Workspace, Linear, Slack, 1Password, HubSpot, DocuSign,
Notion, Brex, Tally, Cloudflare, CSV, Probo memberships,
Sentry, OpenAI, Supabase, GitHub, Intercom, and Resend.
Include name resolvers, VCR test infrastructure with
cassettes, and RFC 5988 link header parser.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-04-02 11:51:19 +02:00
parent 761840929f
commit 2320e1e0be
53 changed files with 6051 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
---
version: 2
interactions:
- id: 0
request:
proto: HTTP/1.1
proto_major: 1
proto_minor: 1
content_length: 323
host: api.linear.app
body: '{"query":"\nquery AccessReviewLinearUsers($after: String) {\n users(first: 100, after: $after) {\n nodes {\n id\n email\n name\n active\n admin\n guest\n lastSeen\n createdAt\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n","variables":{"after":null}}'
headers:
Accept:
- application/json
Content-Type:
- application/json
url: https://api.linear.app/graphql
method: POST
response:
proto: HTTP/2.0
proto_major: 2
proto_minor: 0
content_length: -1
uncompressed: true
body: |
{"data":{"users":{"nodes":[{"id":"00000001-0000-0000-0000-000000000001","email":"bot-integration@linear.linear.app","name":"Linear","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-24T17:27:44.095Z","createdAt":"2026-03-24T17:27:43.979Z"},{"id":"00000001-0000-0000-0000-000000000002","email":"bot-cursor@oauthapp.linear.app","name":"Cursor","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-17T14:02:50.975Z","createdAt":"2026-03-17T14:02:50.855Z"},{"id":"00000001-0000-0000-0000-000000000003","email":"jane@example.com","name":"Jane Doe","active":true,"admin":false,"guest":false,"lastSeen":"2026-03-09T12:49:53.331Z","createdAt":"2025-01-20T09:12:11.959Z"},{"id":"00000001-0000-0000-0000-000000000004","email":"john@example.com","name":"John Smith","active":true,"admin":true,"guest":false,"lastSeen":"2026-03-26T12:33:50.957Z","createdAt":"2024-07-01T13:19:57.427Z"}],"pageInfo":{"hasNextPage":false,"endCursor":"00000001-0000-0000-0000-000000000004"}}}}
headers:
Alt-Svc:
- h3=":443"; ma=86400
Cache-Control:
- no-store
Cf-Cache-Status:
- DYNAMIC
Cf-Ray:
- 9e264c7e18b111f4-CDG
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 26 Mar 2026 12:53:32 GMT
Etag:
- W/"41d-Oqy6gPJu1qx5Quzm0QLcNk/BcEY"
Server:
- cloudflare
Vary:
- Accept-Encoding
Via:
- 1.1 google
X-Complexity:
- "300"
X-Ratelimit-Complexity-Limit:
- "3000000"
X-Ratelimit-Complexity-Remaining:
- "2999700"
X-Ratelimit-Complexity-Reset:
- "1774533212671"
X-Ratelimit-Requests-Limit:
- "5000"
X-Ratelimit-Requests-Remaining:
- "4999"
X-Ratelimit-Requests-Reset:
- "1774533212671"
X-Request-Id:
- 9e264c7f056511f4-CDG
status: 200 OK
code: 200
duration: 240.856ms