OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

messaging.github

GitHub integration for issue and pull request comment workflows backed by webhook events.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.messaging
  • Tags: messaging, github, pull-requests
  • field.key.label
    messaging.github
    field.version.label
    1.0.0
    field.type.label
    integration (integration)
    field.title.label
    messaging.github
    field.description.label

    GitHub integration for issue and pull request comment workflows backed by webhook events.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.messaging
  • Tags: messaging, github, pull-requests
  • field.tags.label
    messaging,github,pull-requests
    field.owners.label
    platform.messaging
    field.stability.label

    GitHub integration for issue and pull request comment workflows backed by webhook events.

    Source Definition

    export const messagingGithubIntegrationSpec = defineIntegration({
    	meta: {
    		key: 'messaging.github',
    		version: '1.0.0',
    		category: 'messaging',
    		title: 'GitHub Messaging Bridge',
    		description:
    			'GitHub integration for issue and pull request comment workflows backed by webhook events.',
    		domain: 'developer-experience',
    		owners: ['platform.messaging'],
    		tags: ['messaging', 'github', 'pull-requests'],
    		stability: StabilityEnum.Beta,
    	},
    	supportedModes: ['managed', 'byok'],
    	transports: [
    		{
    			type: 'rest',
    			baseUrl: 'https://api.github.com',
    			apiVersionHeader: 'X-GitHub-Api-Version',
    		},
    		{
    			type: 'webhook',
    			inbound: {
    				signatureHeader: 'x-hub-signature-256',
    				signingAlgorithm: 'hmac-sha256',
    			},
    		},
    	],
    	preferredTransport: 'rest',
    	supportedAuthMethods: [
    		{ type: 'bearer' },
    		{
    			type: 'oauth2',
    			grantType: 'authorization_code',
    			authorizationUrl: 'https://github.com/login/oauth/authorize',
    			tokenUrl: 'https://github.com/login/oauth/access_token',
    			scopes: ['repo', 'read:org'],
    		},
    		{
    			type: 'webhook-signing',
    			algorithm: 'hmac-sha256',
    			signatureHeader: 'x-hub-signature-256',
    		},
    	],
    	versionPolicy: {
    		currentVersion: '2022-11-28',
    		supportedVersions: [{ version: '2022-11-28', status: 'stable' }],
    		versionHeader: 'X-GitHub-Api-Version',
    	},
    	capabilities: {
    		provides: [
    			{ key: 'messaging.inbound', version: '1.0.0' },
    			{ key: 'messaging.outbound', version: '1.0.0' },
    		],
    	},
    	configSchema: {
    		schema: {
    			type: 'object',
    			properties: {
    				defaultOwner: {
    					type: 'string',
    					description: 'Optional default GitHub repository owner.',
    				},
    				defaultRepo: {
    					type: 'string',
    					description: 'Optional default GitHub repository name.',
    				},
    				apiBaseUrl: {
    					type: 'string',
    					description:
    						'Optional GitHub REST API base URL (useful for enterprise instances).',
    				},
    			},
    		},
    		example: {
    			defaultOwner: 'lssm-tech',
    			defaultRepo: 'contractspec',
    		},
    	},
    	secretSchema: {
    		schema: {
    			type: 'object',
    			required: ['token', 'webhookSecret'],
    			properties: {
    				token: {
    					type: 'string',
    					description:
    						'GitHub API token used to post comments and automation messages.',
    				},
    				webhookSecret: {
    					type: 'string',
    					description:
    						'Secret used to verify inbound GitHub webhook signatures.',
    				},
    			},
    		},
    		example: {
    			token: 'ghp_***',
    			webhookSecret: '***',
    		},
    	},
    	healthCheck: {
    		method: 'custom',
    		timeoutMs: 4000,
    	},
    	docsUrl: 'https://docs.github.com/en/rest',
    	constraints: {
    		rateLimit: {
    			rpm: 300,
    		},
    	},
    	byokSetup: {
    		setupInstructions:
    			'Create a GitHub token or app installation token with repository access and configure the webhook secret.',
    		requiredScopes: ['repo', 'read:org'],
    		keyRotationSupported: true,
    		quotaTrackingSupported: false,
    	},
    });