Skip to content

Add a HubSpot service configuration #10

Description

@shreyanshjain7174

What

Add HubSpot as a registered service, following the exact pattern already used by github, slack, stripe, and google_workspace.

Why

More service configurations mean more agents can use AgentGate out of the box without writing any Go code — this is a config-only, no-code-required contribution.

Files to touch

  • configs/services.yaml — the file the Dockerfile and quickstart actually load. Add a hubspot: entry.
  • config/services.yaml — the local, non-Docker dev default. Add the same entry for consistency (see internal/registry/production_config_test.go's TestProductionConfig_LocalDevDefaultMatches, which checks these two files don't drift).
  • configs/services/hubspot.yaml — a new per-service reference file, matching the convention README.md points readers at (see configs/services/google_workspace.yaml for the exact shape to copy).

Suggested shape

HubSpot's CRM API (https://developers.hubspot.com/docs/api/crm/contacts) supports OAuth2 with well-documented authorize/token URLs and scopes. A narrow, read-focused starting scope keeps this in the spirit of the existing Gmail-labels-only Google Workspace connector:

hubspot:
  base_url: https://api.hubapi.com
  auth:
    type: oauth2
    authorize_url: https://app.hubspot.com/oauth/authorize
    token_url: https://api.hubapi.com/oauth/v1/token
    scopes: [crm.objects.contacts.read]
  actions:
    list_contacts:
      method: GET
      path: /crm/v3/objects/contacts
      params:
        limit: "int?"

Acceptance checks

  • configs/services.yaml, config/services.yaml, and configs/services/hubspot.yaml all parse as valid YAML and match the registry.Config schema in internal/registry/registry.go.
  • go test ./internal/registry/... passes, including the existing TestProductionConfig_* tests.
  • No Go code changes are required for this issue.

Test path (no secrets needed)

go test ./internal/registry/... -run TestProductionConfig -v

This test loads the real config files directly — no live HubSpot account, API key, or network access needed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions