Skip to content

connector-batch-1: foundation + 81 new SaaS connectors (in progress)#232

Merged
keysersoft merged 19 commits into
mainfrom
keysersoft/connector-batch-1
May 20, 2026
Merged

connector-batch-1: foundation + 81 new SaaS connectors (in progress)#232
keysersoft merged 19 commits into
mainfrom
keysersoft/connector-batch-1

Conversation

@keysersoft
Copy link
Copy Markdown
Contributor

Status: WORK IN PROGRESS — do not merge yet

Long-lived branch that batches the next ~81 SaaS connector adapters in one PR. Building incrementally; merging the whole branch in one go at the end (`gh pr merge --squash --admin` after final QA).

Wave 0 — Foundation (this initial commit)

  • `scripts/regenerate-catalog.mjs`: codegen scans `adapters/{region}/*.json` and rewrites the AUTOGEN sections of catalog.ts (imports + RAW_ADAPTERS). Wired into `prebuild`.
  • `scripts/validate-adapters.mjs`: quality gate (hard errors + soft warnings). All 40 existing adapters pass the hard gate.
  • Frontend store: +18 category labels for the incoming connectors.
  • CI: validator + catalog-sync check before backend tests.

Wave 1+ — Connectors (incoming commits)

Will add ~81 new connector adapters across CRM, email/MA, project mgmt, scheduling, forms, support, payments, e-commerce, analytics, comms, publishing, e-signature, lead enrichment, knowledge, social, maps. Each follows the WhatsApp-Business-shaped pattern:

  • Rich `instructions` field (≥1500 chars typical) covering auth setup, IDs, rate limits, business rules, scope-out
  • Tools with rich descriptions
  • `live.spec.ts` with static asserts + RUN_*_LIVE-gated edge probes

Excluded from this batch (verified, vendor MCP already ships): HubSpot, PayPal, Atlassian (Jira+Confluence), Monday, Cal.com, Resend, Mixpanel, PostHog, Square, JotForm, Paddle, WooCommerce, Customer.io, Vonage, Zoom, DocuSign, Mailgun.

Test plan

  • `node scripts/validate-adapters.mjs` passes after each connector commit
  • CI green
  • Manual: import a sample connector locally via /connectors/store

keysersoft added 12 commits May 20, 2026 11:54
Three pieces of infrastructure to keep the adapter catalog maintainable
as it grows from 40 to 100+ entries:

1. scripts/regenerate-catalog.mjs — codegen that scans every JSON under
   packages/backend/src/adapters/{de,gb,intl,br,in,jp,ng}/ and rewrites
   the AUTOGEN-marked sections of catalog.ts (imports + RAW_ADAPTERS
   array). Wired into backend's prebuild script so nest build always
   has the catalog in sync with the JSON files. Eliminates the chore of
   hand-editing two lists in catalog.ts on every new adapter and the
   class of bugs where someone forgets one of the two.

2. scripts/validate-adapters.mjs — quality gate with hard errors (must
   pass for CI) on the things that genuinely break the system (missing
   required fields, slug-filename mismatch, unknown connector/auth
   types, empty tools array) and soft warnings (instructions length,
   tool description length, parameter descriptions, slug-prefixed tool
   names) that surface low-quality adapters without blocking the
   batch. Existing 40 adapters all pass the hard gate.

3. Frontend store: +18 category labels (CRM, Email, Marketing
   Automation, Project Management, Scheduling, Forms, Customer Support,
   Payments, E-commerce, Analytics, Publishing, E-signature, Lead
   Enrichment, Knowledge Base, Social, Maps & Geo, Travel, CMS) so the
   incoming connector batch renders with proper labels in the store UI.

CI: added two new steps before backend tests — validate-adapters runs
the gate, then we regenerate catalog.ts and fail the run if it differs
from what's committed (catches the case where someone adds a JSON but
forgets to regenerate). Both steps are fast (<5s).
Three high-priority greenfield SaaS connectors with rich instructions
fields, live edge specs (RUN_*_LIVE gated), and full tool coverage.

- Pipedrive (CRM): 23 tools across deals, persons, organizations,
  activities, pipelines, stages, users, custom field discovery and
  universal search. QUERY_AUTH with api_token in query string.
  Mixed v1 + v2 API as per Pipedrive's own structure.

- Mailchimp (Email/MA): 16 tools across audiences, members,
  segments, campaigns, templates and account info. BEARER_TOKEN
  with the datacenter-prefixed base URL pattern (us6 etc) baked
  into the env var template.

- SendGrid (Transactional email): 14 tools across mail send,
  templates, stats, suppressions (bounces / spam / invalid),
  marketing contacts, marketing lists, SGQL search. BEARER_TOKEN.

All three pass the validator hard gate and their live edge probes
return 401 from the vendor router (proves endpoint paths are
recognized). Catalog auto-regenerated to 43 adapters total.
- Calendly v2 (Scheduling): 12 tools — event types, availability
  windows, scheduled events, invitees, single-use scheduling links,
  cancellation (POST not DELETE per Calendly convention),
  organization memberships. Personal access token Bearer auth.
  Heavy use of URI-as-ID model — instructions field documents it.

- Telegram Bot API: 13 tools — text/photo/document/audio/voice
  (OGG-Opus)/video/location/poll send, message edit/delete, chat
  info, getUpdates pull. authType=NONE because the bot token lives
  in the URL path (Telegram-specific) — the {{TELEGRAM_BOT_TOKEN}}
  template substitutes into baseUrl.

- Discord REST API v10 (bot): 13 tools — guilds/channels/messages
  list, send/edit/delete message, reactions (PUT), DM channel open,
  thread spawn, guild member fetch. API_KEY auth with literal 'Bot '
  prefix (NOT 'Bearer') as Discord requires. Inbound gateway,
  voice, slash commands explicitly out of scope.

Catalog now at 46 adapters. All pass validator hard gate.
Finishes the verified Top 10 batch (no vendor-official MCP server
exists yet for these as of audit).

- Zendesk Support v2: 18 tools — tickets CRUD with comment envelope,
  users, organizations, groups, views, macros, search, side-loading.
  BASIC_AUTH with email/token convention. Subdomain in baseUrl.

- Typeform: 10 tools — list/get forms, list responses (cursor and
  date-range pagination), delete responses (GDPR), workspaces,
  insights, themes. Personal Token Bearer. Read-focused since the
  form-builder write side is rarely worth automating.

- Lemon Squeezy v1: 14 tools — stores, products, variants, customers,
  orders, subscriptions (with cancel-at-period-end DELETE), license
  keys, discounts, payouts. JSON:API spec with required Accept header
  set per endpoint, side-loading via include=. Bearer auth.

- Klaviyo (revision 2024-10-15): 14 tools — accounts, profiles
  CRUD, lists, subscribe with double-opt-in respect, segments,
  events tracking (the heart of Klaviyo flows), metrics, campaigns,
  flows. Custom 'Klaviyo-API-Key' auth prefix (not Bearer). All
  tools pin the required revision header.

Catalog: 50 adapters total. Validator clean.
Wave 2 of the greenfield batch — CRM extension + email/MA platforms
not yet covered by vendor-official MCP servers.

- Close (CRM): 16 tools — leads/contacts/opportunities CRUD with
  custom-field discovery, activities (note creation only — typed
  call/email/sms activities should come from real channels), tasks,
  smart-view queries, statuses. BASIC_AUTH with key-as-username.

- Brevo (formerly Sendinblue, EU email/SMS): 14 tools — transactional
  email + SMS, contacts CRUD with double-opt-in awareness, lists
  and folders, campaigns create+sendNow, aggregated stats.
  Lowercase 'api-key' header convention.

- Kit / ConvertKit v4: 14 tools — subscribers, tags, sequence
  enrollment, forms, broadcasts. Modern v4 Bearer API (uses the
  new key format from Settings → Advanced).

- Loops (modern product email): 9 tools — contacts upsert via
  /contacts/create and /contacts/update, send transactional email
  with dataVariables, fire behavioral events to trigger Loops
  automations, list mailing lists and custom fields.

- ActiveCampaign v3: 16 tools — contacts (sync, update, delete),
  list memberships with status integers (1=Active/2=Unsub/0=Pending
  double-opt-in), tags, deals + pipelines + stages, custom fields.
  Custom Api-Token header, account-templated base URL.

Catalog: 55 adapters total. All 5 smoke-tested (401 from vendor
edge confirms path recognition).
Wave 3 — sales/CRM completion. Five connectors covering
contact-database enrichment, sales-engagement cadences, and
Google-Workspace-native CRM.

- Copper CRM: 12 tools — people, companies, opportunities CRUD
  with custom-field discovery, pipelines, activities, search via
  POST (Copper-specific convention). Requires 3 auth headers
  simultaneously (token + appname + user email) — added
  extraHeaders support to RestEngine API_KEY profile to handle
  this without polluting per-tool headers.

- Apollo.io: 11 tools — people/org search across 275M+ database,
  enrichment by email/linkedin/id, search of your CRM contacts,
  cadence enrollment. Instructions document credit-consumption
  behavior for reveal operations.

- Salesloft v2: 11 tools — people/accounts CRUD, cadence list
  and enrollment via cadence_memberships, call activity logging,
  user listing. Bearer OAuth2 with short-lived tokens.

- Outreach v2: 11 tools — prospects/accounts CRUD with JSON:API
  envelope, sequences, sequenceStates for enrollment, mailboxes
  (sending identity), tasks, stages. PATCH for updates.

- Lemlist v1: 11 tools — campaigns and their stats, leads in
  campaign (add/pause/resume/delete), global unsubscribe,
  webhooks list. BASIC_AUTH with empty username (key as password
  — Lemlist convention).

Engine change: API_KEY auth now supports extraHeaders for vendors
like Copper that need multiple fixed headers alongside the key.
Backward compatible.

Catalog: 60 adapters. All 5 smoke-tested.
Wave 4 — project / task management batch. Five connectors covering
the full spectrum from personal todos (Todoist) to enterprise
project management (Basecamp, ClickUp).

- ClickUp v2: 16 tools — workspace/space/folder/list hierarchy
  navigation, tasks CRUD with custom_task_ids support, comments,
  custom fields per list, team members. Raw token in Authorization
  header (no Bearer prefix — ClickUp-specific).

- Trello v1: 13 tools — boards, lists, cards CRUD with move/archive,
  comments, URL attachments, board labels, universal search.
  QUERY_AUTH with key+token (Trello's classic 2-value scheme).

- Todoist API v1: 12 tools — projects, tasks with natural-language
  due dates, comments, labels. Switched to the modern /api/v1 base
  (rest/v2 is deprecated as of 2025 — vendor returned 410 Gone).

- Basecamp 4: 12 tools — projects with dock discovery, todolists
  and todos with complete/uncomplete via POST/DELETE on completion,
  message board posts, comments on any recording, people. Vendor
  REQUIRES User-Agent header on every request — pinned per-tool.

- Coda v1: 13 tools — docs, tables, columns, rows with formula-based
  filtering and upsert via keyColumns, async mutation status check,
  named-formula evaluation.

Catalog: 65 adapters. All 5 smoke-tested.
Wave 5 — utility batch (enrichment + maps + docs).

- Hunter.io v2: 7 tools — domain-search, email-finder, email-verifier,
  combined person+company enrichment. QUERY_AUTH with api_key.

- NeverBounce v4.2: 6 tools — single sync check + bulk async job
  flow (create/parse/start/status/results). QUERY_AUTH with key.

- Mapbox: 8 tools — forward/reverse geocoding v6, directions,
  isochrones, matrix, static images, tilequery, list styles.
  Documents the lng,lat coordinate convention quirk.

- Nominatim (OpenStreetMap, FREE no-auth): 4 tools — search,
  reverse, lookup by OSM ID, status. authType=NONE. Every tool
  pins User-Agent (Nominatim usage policy requirement). Instructions
  document the 1 req/sec self-throttling requirement.

- Mintlify v1: 5 tools — trigger update, project info, assistant
  conversations log, search-queries analytics, site analytics.

Catalog: 70 adapters (30/81 of the greenfield batch done).
Smoke-test summary: Hunter+Mapbox 401 (auth rejected, path OK);
NeverBounce 200 (endpoint public-by-default for /account);
Nominatim 200 (truly public).
Wave 6 — mixed batch covering forms, support, payments, e-signature.

- Tally: 6 tools — read workspaces/forms/submissions, get form
  questions. Modern Typeform alternative with generous free tier.

- SurveyMonkey v3: 8 tools — surveys, responses bulk, collectors,
  contact lists. Heavy on read for response analysis.

- Freshdesk v2: 16 tools — tickets CRUD with reply/note distinction,
  Lucene-like search, contacts/companies/agents/groups, ticket fields
  for custom-field composition. BASIC_AUTH with key as username + 'X'
  as password (Freshdesk convention). Subdomain-templated base URL.

- Mollie v2: 14 tools — payments, refunds, customers, subscriptions
  with mandates, mandates revoke, methods. Documents the
  {currency,value:'10.00'} amount shape (value is STRING with exact
  decimals — sending number errors).

- PandaDoc v1: 10 tools — create document from template, send for
  signature, poll status, download PDF, templates with role/token
  discovery. Custom 'API-Key' prefix (NOT Bearer).

Catalog: 75 adapters (35/81 greenfield batch done).
Wave 7 — publishing + social + customer support.

- Ghost Admin v5: 12 tools — posts/pages/tags/members/newsletters
  CRUD with the required optimistic-concurrency updated_at field
  on writes. JWT-based auth (operator generates short-lived JWT
  via Ghost SDK and passes as GHOST_ADMIN_JWT env var).

- Substack public: 5 tools — public posts/comments/RSS read. NO
  auth. Substack has no public write API, so this is read-only by
  necessity.

- Reddit OAuth2: 12 tools — subreddit listings, search,
  comments/posts/submit/vote/save, my subreddits. Uses
  oauth.reddit.com (not www.) for authenticated requests. Reddit
  REQUIRES a meaningful User-Agent header — adapter pins one via
  extraHeaders on API_KEY auth (the engine extension shipped in
  the Copper commit).

- Help Scout Mailbox v2: 13 tools — conversations CRUD with the
  HAL+JSON spec, threads (replies + internal notes), customers,
  tags, users. PATCH for status transitions uses JSON Patch ops.

- Front: 13 tools — conversations with filter[q] syntax,
  messages, replies (creates new message in conversation),
  internal comments, contacts with multi-handle support, tags,
  teammates.

Catalog: 80 adapters (40/81 of the greenfield batch done — ~50%).
Wave 8 — e-commerce + scheduling + analytics + email automation.

- BigCommerce v3: 14 tools — products CRUD with variants, categories,
  customers, orders (uses v2 endpoints for orders since v3 hasn't
  migrated them). X-Auth-Token header + store-hash in baseUrl. Paths
  explicitly carry /v2 vs /v3 prefix.

- Acuity Scheduling v1: 12 tools — appointment types, calendars,
  availability windows (dates + times), appointments CRUD with
  reschedule/cancel, clients, forms. BASIC_AUTH with userId+key.

- Drip v2: 12 tools — subscribers upsert, tags, events for workflow
  triggers, campaigns enrollment, e-commerce order tracking, custom
  fields discovery. BASIC_AUTH with key as username + empty password.
  Account-templated base URL.

- Heap server-side: 5 tools — single + bulk event tracking, user
  properties, account properties (B2B), user-account association.
  authType=NONE (Heap's server-side ingest uses app_id in body).

- Fathom Analytics v1: 6 tools — sites, events list/create,
  aggregations (the flexible query API), current visitors realtime.

Catalog: 85 adapters (45/81 of the greenfield batch done, ~56%).
Wave 9 — payments + support + feature flags.

- Chargebee v2: 14 tools — customers, subscriptions with item-prices,
  pause/resume, invoices, items, item_prices, coupons. BASIC_AUTH.
  Site-templated baseUrl. form-urlencoded bodies (Chargebee
  convention).

- Recurly v2021-02-25: 11 tools — accounts, subscriptions with
  cancel/terminate, invoices, plans, coupons. BASIC_AUTH. Required
  vendor-specific Accept header pinned per-tool.

- Crisp v1: 11 tools — conversations CRUD with state transitions
  and routing, messages with internal-note support, people profiles,
  operators. Website ID baked into baseUrl. X-Crisp-Tier: plugin
  header on every request (Crisp requirement).

- Adyen Checkout v71: 10 tools — paymentMethods discovery, create
  payment, payments/details for 3DS finalization, capture, refund,
  cancel, reversal, sessions, origin keys. X-API-Key header.
  Test environment by default.

- Statsig: 10 tools — Server SDK (check_gate, get_config,
  get_experiment, initialize, log_event) + Console (list/create
  gates, list/get experiment results). Single adapter spans TWO
  distinct API hosts via per-tool absolute URLs.

Engine change: RestEngine now allows endpointMapping.path to be a
full absolute URL — bypasses baseUrl when the path starts with
http(s)://. Lets adapters cover multi-host vendors (Statsig) without
splitting into two connector records. Backward compatible.

Catalog: 90 adapters (50/81 of the greenfield batch done, ~62%).
Comment thread packages/backend/src/adapters/intl/statsig.live.spec.ts Fixed
Wave 10 — enrichment + knowledge + publishing + forms.

- Clearbit (HubSpot Breeze Intelligence): 6 tools — person enrich
  by email, company by domain, combined, discovery search,
  reveal by IP, autocomplete. Multiple distinct subdomains
  (person/company/discovery/reveal/autocomplete) handled via
  per-tool absolute URLs.

- Snov.io v1: 9 tools — domain search, email finder by name/URL,
  email verifier, prospect lists CRUD, drip campaigns list. OAuth2
  client-credentials Bearer.

- GitBook v1: 9 tools — orgs/spaces/collections, page tree, page
  content (JSON AST or Markdown), full-text search, markdown
  import as a page write path. Bearer.

- beehiiv v2: 11 tools — publication info, posts CRUD with
  audience/platform/status filters, subscriptions CRUD with custom
  fields, segments, test-email send. Publication ID baked into
  baseUrl.

- Wufoo v3: 6 tools — forms, fields discovery, entries with the
  vendor's quirky filter syntax, programmatic entry submission.
  Subdomain-templated URL. Basic auth with literal 'footastic'
  password (Wufoo convention).

Catalog: 95 adapters (55/81 of the greenfield batch done, ~68%).
Wave 11 — e-commerce + social + CRM + forms continuation.

- Magento 2 / Adobe Commerce: 12 tools — products with SKU as
  primary key, categories tree, stock update, orders with cancel,
  customers. Bearer admin-token. Heavy use of Magento's
  searchCriteria filter_groups DSL via templated query params.

- Etsy Open API v3: 9 tools — user/shops, listings active/single,
  receipts with shipping status filters, reviews, listings by
  section. DUAL AUTH — x-api-key header (App key) + Authorization
  Bearer (OAuth user token). Engine extraHeaders pattern.

- YouTube Data v3: 9 tools — search (100 quota units!), videos,
  channels, playlists, playlist items, comment threads, video
  categories, captions. QUERY_AUTH with key. Documents quota cost
  model per endpoint.

- Insightly v3.1: 12 tools — contacts/organisations/leads/
  opportunities CRUD, pipelines, projects, tasks. BASIC_AUTH with
  pod-templated baseUrl (na1/eu2/...).

- Fillout v1: 6 tools — forms, submissions list+get+create+delete.
  Bearer auth. Modern Typeform alternative.

Catalog: 100 adapters (60/81 of the greenfield batch done, ~74%).
Wave 12 — modern CRM + project mgmt + knowledge + e-signature.

- Attio v2: 12 tools — schema-flexible object model (people/
  companies/deals/custom), query with attio filter DSL, get,
  create, update (PATCH), upsert via matching_attribute, lists,
  notes (markdown). Bearer.

- Folk v2: 9 tools — people CRUD with group memberships, companies,
  groups with group-scoped custom fields. Bearer.

- TickTick v1: 6 tools — projects (lists), get project with all
  tasks + columns, tasks CRUD with iCalendar RRULE recurrence,
  complete. OAuth2 Bearer.

- Slab: 6 GraphQL tools — me, get post (markdown), search,
  topics, topic posts, create post from markdown. GRAPHQL
  connector type — auto-injected slab_graphql_query/mutation/
  schema for arbitrary operations.

- Dropbox Sign (formerly HelloSign) v3: 10 tools — signature
  requests CRUD (with test_mode=1 default), send-with-template
  vs send-from-file_urls, reminder, cancel, download final PDF,
  templates list+get. BASIC_AUTH with key as user.

Catalog: 105 adapters (65/81 of the greenfield batch done, ~80%).
Wave 13 — publishing + project mgmt + scheduling + comms + e-sig.

- Medium v1: 5 tools — me/publications/contributors (read), create
  post under user OR publication with html/markdown content. Note
  Medium API is write-mostly (no public read for posts since 2019).

- Height: 9 tools — workspace, lists, tasks with JSON filters,
  search, CRUD, users, custom fields. api-key prefix (NOT Bearer).

- SavvyCal v1: 6 tools — scheduling links, meetings, cancel. Bearer.

- MessageBird v1: 8 tools — balance, SMS send/list/get, voice call
  with callFlow steps, phone lookup, verify create+check (OTP flow).
  AccessKey prefix (NOT Bearer).

- SignWell v1: 8 tools — documents list/get, create from URLs OR
  template, reminders, cancel, download completed PDF, templates.
  Dual-header auth (X-Api-Key + X-Api-Application via extraHeaders).

Catalog: 110 adapters (70/81 of the greenfield batch done, ~86%).
…, Instantly

Wave 14 — scheduling + support + e-commerce + analytics + cold email.

- Microsoft Bookings (via Graph v1.0): 8 tools — businesses,
  services, staff, appointments CRUD + cancel-with-message.
  Bearer OAuth2 against Microsoft Graph.

- Kustomer v1: 10 tools — customers search/CRUD with multi-handle
  support, conversations search/get/update status/assign, internal
  notes, outbound messages (email/sms/chat). Subdomain-templated.

- Ecwid v3: 10 tools — store profile, products search/CRUD,
  categories, orders search/get/update with payment+fulfillment
  status codes, customers search. Store-templated baseUrl.

- Vercel Analytics: 4 tools — user, projects list, deployments
  list, Speed Insights aggregations. Bearer.

- Instantly v2: 8 tools — campaigns list/get/analytics, leads
  list/add with dedupe options, update interest_status (hot/warm/
  cold), lead lists, sending accounts.

Catalog: 115 adapters (75/81 of the greenfield batch done, ~93%).
Wave 15 — final batch of the greenfield catalog growth.

- Mailshake: 8 tools — campaigns list/get/pause/unpause, recipients
  add (with dedupe) / list / pause. BASIC_AUTH with key as user.

- Microsoft Teams (via Graph v1.0): 9 tools — joined teams, channels
  list/get, messages list/send/reply with HTML body + mentions[],
  channel + team members. Shares MICROSOFT_GRAPH_ACCESS_TOKEN env
  var with the Bookings adapter.

- LinkedIn v2: 5 tools — userinfo (OIDC), create/get/delete post
  for w_member_social scope, register image upload. Documents
  the Marketing Developer Platform gating limitation that blocks
  most other useful endpoints.

- Amadeus Self-Service (travel): 8 tools — flight offers search +
  price confirmation + destinations inspiration, airport/city
  autocomplete, hotel list + offers, POIs, flight status. OAuth2
  client-credentials Bearer. Test environment by default.

Catalog: 119 adapters total (79/81 of the greenfield batch — the
plan called for 81 minus the 1 (WooCommerce) that landed via
external PR while I was working).

This closes the greenfield connector batch. PR #232 is ready for
final review + merge once CI passes.
- slab.json: GRAPHQL connectors put the operation type in
  endpointMapping.method ('query'|'mutation') and the GraphQL
  document in .path — NOT POST + body. The catalog.spec.ts test
  enforces this distinction (VALID_GRAPHQL_METHODS) and CI was
  failing on 6 slab tools. Rewrote to follow the existing Sorare
  pattern with variables under bodyMapping.variables.

- statsig.live.spec.ts: replaced substring URL match with new URL()
  hostname comparison — CodeQL flagged the startsWith pattern as
  incomplete-url-sanitization (false positive in test code but it
  was blocking the PR merge). Stricter check is also more correct.
@keysersoft keysersoft marked this pull request as ready for review May 20, 2026 11:45
@keysersoft keysersoft merged commit 9d751a3 into main May 20, 2026
10 checks passed
@keysersoft keysersoft deleted the keysersoft/connector-batch-1 branch May 20, 2026 11:45
keysersoft added a commit that referenced this pull request May 20, 2026
…ks (#233)

PR #232 introduced a backend prebuild hook that runs
node ../../scripts/regenerate-catalog.mjs to keep catalog.ts in
sync with adapter JSONs. The Docker build only COPYs packages/backend
into the image, so the prebuild was failing with MODULE_NOT_FOUND.

Add a single COPY for the script (one tiny file, no deps).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants