Skip to content

Integrations Overview

Shoehorn integrates with external tools to enrich your service catalog with data from across your engineering ecosystem.

IntegrationPurposeSetupDirection
GitHubRepository discovery, manifests, PR activityGitHub AppShoehorn pulls + GitHub webhooks
Identity ProvidersAuthentication and group syncOIDC configurationShoehorn pulls on login + OrgData sync
KubernetesWorkload and GitOps discovery, network topologyK8s agent in each clusterAgent pushes to Shoehorn (no inbound to clusters)
CI/CDManifest validation in pipelinesCLI in GitHub Actions, GitLab CI, JenkinsCI calls the Shoehorn API
Cloud providersInfrastructure inventory and cost dataProvider API tokenShoehorn pulls on a schedule

Integrations use either a pull or push model depending on where the data lives.

Pull (Shoehorn talks out) is used for GitHub, identity providers, and cloud providers. The crawler or sync job fetches data on a schedule, then enriches the catalog. Webhooks add real-time updates on top of the schedule where the provider supports them.

Push (cluster talks in) is used for Kubernetes. The K8s agent runs inside each cluster, watches the Kubernetes API through informers, and pushes changes to Shoehorn over HTTPS. No inbound connectivity to the cluster is required, which is what makes the agent work behind a firewall, on-prem, or in air-gapped networks.

Integrations are managed in Admin > Integrations. Each integration shows:

  • Connection status (connected, error, pending)
  • Last sync time
  • Entity count affected
  • Configuration details
GitHub / IdP / Cloud providers Kubernetes clusters
│ │
├── Crawler pulls └── K8s agent pushes (HTTPS, outbound only)
│ (scheduled) │
└── Webhooks (push) │
│ │
▼ ▼
Shoehorn API
Entity enrichment
Search index update