github

package
v1.223.0 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 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