Help us shape the future of Go! Take the 2026 Go Developer Survey

github

package
v1.233.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package github provides an AI provider backed by GitHub Models. GitHub Models exposes an OpenAI-compatible inference API, so we use the OpenAI SDK with a custom base URL. The headline use case is CI: in GitHub Actions the built-in GITHUB_TOKEN (with `models: read` permission) is enough to authenticate — no extra secrets required.

Index

Constants

View Source
const (
	// ProviderName is the name of this provider for configuration lookup.
	ProviderName = "github"
	// DefaultMaxTokens is the default maximum number of tokens in AI responses.
	DefaultMaxTokens = 4096
	// DefaultModel is the default GitHub Models model (publisher/model-name format).
	DefaultModel = "openai/gpt-4o-mini"
	// DefaultAPIKeyEnvVar is the default environment variable name for the API key (used in error hints).
	DefaultAPIKeyEnvVar = "GITHUB_TOKEN"
	// DefaultBaseURL is the default GitHub Models inference endpoint.
	DefaultBaseURL = "https://models.github.ai/inference"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client provides a simplified interface to the GitHub Models API for Atmos. GitHub Models API is OpenAI-compatible, so we use the OpenAI SDK with a custom base URL.

func NewClient

func NewClient(atmosConfig *schema.AtmosConfiguration) (*Client, error)

NewClient creates a new GitHub Models client from Atmos configuration.

func (*Client) GetBaseURL

func (c *Client) GetBaseURL() string

GetBaseURL returns the configured base URL.

func (*Client) GetMaxTokens

func (c *Client) GetMaxTokens() int

GetMaxTokens returns the configured max tokens.

func (*Client) GetModel

func (c *Client) GetModel() string

GetModel returns the configured model name.

func (*Client) SendMessage

func (c *Client) SendMessage(ctx context.Context, message string) (string, error)

SendMessage sends a message to the AI and returns the response.

func (*Client) SendMessageWithHistory

func (c *Client) SendMessageWithHistory(ctx context.Context, messages []types.Message) (string, error)

SendMessageWithHistory sends messages with full conversation history.

func (*Client) SendMessageWithSystemPromptAndTools

func (c *Client) SendMessageWithSystemPromptAndTools(
	ctx context.Context,
	systemPrompt string,
	atmosMemory string,
	messages []types.Message,
	availableTools []tools.Tool,
) (*types.Response, error)

SendMessageWithSystemPromptAndTools sends messages with system prompt, conversation history, and available tools. The system prompt and atmosMemory are prepended as system messages.

func (*Client) SendMessageWithTools

func (c *Client) SendMessageWithTools(ctx context.Context, message string, availableTools []tools.Tool) (*types.Response, error)

SendMessageWithTools sends a message with available tools.

func (*Client) SendMessageWithToolsAndHistory

func (c *Client) SendMessageWithToolsAndHistory(ctx context.Context, messages []types.Message, availableTools []tools.Tool) (*types.Response, error)

SendMessageWithToolsAndHistory sends messages with full conversation history and available tools.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL