Installation
Install the SDK using Bundler or RubyGems: Using Bundler (recommended): Add this line to your application’s Gemfile:Requirements
- Ruby: 2.7.0 or higher
- Faraday: ~> 2.0 (automatically installed as a dependency)
Ruby Compatibility
The BundleUp SDK is tested and supported on:- Ruby 2.7.x
- Ruby 3.0.x
- Ruby 3.1.x
- Ruby 3.2.x
- Ruby 3.3.x
Features
- 🚀 Ruby Idiomatic - Follows Ruby best practices and conventions
- 📦 Easy Integration - Simple, intuitive API design
- ⚡ HTTP/2 Support - Built on Faraday for modern HTTP features
- 🔌 100+ Integrations - Connect to Slack, GitHub, Jira, Linear, and many more
- 🎯 Unified API - Consistent interface across all integrations via Unify API
- 🔑 Proxy API - Direct access to underlying integration APIs
- 🪶 Lightweight - Minimal dependencies
- 🛡️ Error Handling - Comprehensive error messages and validation
- 📚 Well Documented - Extensive documentation and examples
- 🧪 Tested - Comprehensive test suite with RSpec
Quick Start
Get started with BundleUp in just a few lines of code:Authentication
The BundleUp SDK uses API keys for authentication. You can obtain your API key from the BundleUp Dashboard.Getting Your API Key
- Sign in to your BundleUp Dashboard
- Navigate to API Keys
- Click Create API Key
- Copy your API key and store it securely
Initializing the SDK
Security Best Practices
- ✅ DO store API keys in environment variables
- ✅ DO use a secrets management service in production
- ✅ DO rotate API keys regularly
- ❌ DON’T commit API keys to version control
- ❌ DON’T hardcode API keys in your source code
- ❌ DON’T share API keys in public channels
Example .env file:
Core Concepts
Platform API
The Platform API provides access to core BundleUp features like managing connections and integrations. Use this API to list, retrieve, and delete connections, as well as discover available integrations.Proxy API
The Proxy API allows you to make direct HTTP requests to the underlying integration’s API through BundleUp. This is useful when you need access to integration-specific features not covered by the Unify API.Unify API
The Unify API provides a standardized, normalized interface across different integrations. For example, you can fetch chat channels from Slack, Discord, or Microsoft Teams using the same API call.API Reference
Connections
Manage your integration connections.List Connections
Retrieve a list of all connections in your account.integration_id(String): Filter by integration IDintegration_identifier(String): Filter by integration identifier (e.g., ‘slack’, ‘github’)external_id(String): Filter by external user/account IDlimit(Integer): Maximum number of results (default: 50, max: 100)offset(Integer): Number of results to skip for pagination
Retrieve a Connection
Get details of a specific connection by ID.Delete a Connection
Remove a connection from your account.Integrations
Discover and work with available integrations.List Integrations
Get a list of all available integrations.status(String): Filter by status (‘active’, ‘inactive’, ‘beta’)limit(Integer): Maximum number of resultsoffset(Integer): Number of results to skip for pagination
Retrieve an Integration
Get details of a specific integration.Webhooks
Manage webhook subscriptions for real-time event notifications.List Webhooks
Get all registered webhooks.Create a Webhook
Register a new webhook endpoint.connection.created- Triggered when a new connection is establishedconnection.deleted- Triggered when a connection is removedconnection.updated- Triggered when a connection is modified
name(String): Friendly name for the webhookurl(String): Your webhook endpoint URLevents(Hash): Events to subscribe to
Retrieve a Webhook
Get details of a specific webhook.Update a Webhook
Modify an existing webhook.Delete a Webhook
Remove a webhook subscription.Webhook Payload Example
When an event occurs, BundleUp sends a POST request to your webhook URL with the following payload:Webhook Security (Rails Example)
To verify webhook signatures in a Rails application:Proxy API
Make direct HTTP requests to integration APIs through BundleUp.Creating a Proxy Instance
GET Request
POST Request
PUT Request
PATCH Request
DELETE Request
Working with Response Objects
The Proxy API returns Faraday response objects:Unify API
Access unified, normalized data across different integrations with a consistent interface.Creating a Unify Instance
Chat API
The Chat API provides a unified interface for chat platforms like Slack, Discord, and Microsoft Teams.List Channels
Retrieve a list of channels from the connected chat platform.limit(Integer, optional): Maximum number of channels to return (default: 100, max: 1000)after(String, optional): Pagination cursor from previous responseinclude_raw(Boolean, optional): Include raw API response from the integration (default: false)
Git API
The Git API provides a unified interface for version control platforms like GitHub, GitLab, and Bitbucket.List Repositories
List Pull Requests
repo_name(String, required): Repository name in the format ‘owner/repo’limit(Integer, optional): Maximum number of PRs to returnafter(String, optional): Pagination cursorinclude_raw(Boolean, optional): Include raw API response

