Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ into CI pipelines and orchestration DAGs. Precision data tooling for any LLM.
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
[![Slack](https://img.shields.io/badge/Slack-Join%20Community-4A154B?logo=slack)](https://altimate.studio/join-agentic-data-engineering-slack)
[![Docs](https://img.shields.io/badge/docs-docs.altimate.sh-blue)](https://docs.altimate.sh)
[![Install GitHub App](https://img.shields.io/badge/GitHub-Install%20App-24292f?logo=github)](https://github.com/apps/altimate-code-agent/installations/new)
[![Live dbt review](https://img.shields.io/badge/dbt-Live%20PR%20Demo-ff694b?logo=dbt)](https://github.com/AltimateAI/dbt-pr-review-demo/pulls)

</div>
Expand All @@ -38,9 +37,7 @@ curl -fsSL https://www.altimate.sh/install | bash

The curl install drops a single self-contained binary named `altimate`. The npm install exposes both `altimate` and `altimate-code` on PATH; the curl install only exposes `altimate`. Alpine Linux (musl) and Windows on ARM64 are not currently supported by the standalone binary — use `apk add gcompat` on Alpine, or use WSL on Windows-on-ARM.

For GitHub, [install the Altimate Code App](https://github.com/apps/altimate-code-agent/installations/new)
to select repositories for interactive agent tasks. Automatic dbt pull-request
reviews use the deterministic GitHub Action documented below; see the
Automatic dbt pull-request reviews use the deterministic GitHub Action documented below; see the
[public demo PRs](https://github.com/AltimateAI/dbt-pr-review-demo/pulls) before
installing it in your own repository.

Expand Down
6 changes: 2 additions & 4 deletions docs/docs/usage/dbt-pr-review.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
# dbt PR Review

[**See live review PRs**](https://github.com/AltimateAI/dbt-pr-review-demo/pulls)
·
[**Install the GitHub App**](https://github.com/apps/altimate-code-agent/installations/new)

The public demo is a zero-secret DuckDB project with open PRs for broken joins,
removed tests, PII exposure, `SELECT *`, unsafe incremental models, and a safe
refactor. The GitHub App handles interactive repository tasks; the automatic
review on every pull request is installed with the Action below.
refactor. The automatic review on every pull request is installed with the
Action below.

AI code review specialized for dbt/SQL. `dbt-pr-review` produces a single,
**signed** verdict on a pull request — `APPROVE`, `COMMENT`, or `REQUEST_CHANGES`
Expand Down
7 changes: 3 additions & 4 deletions github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,11 @@ Run the following command in the terminal from your GitHub repo:
altimate-code github install
```

This will walk you through installing the GitHub app, creating the workflow, and setting up secrets.
This will walk you through installing the GitHub app, creating the workflow, and setting up secrets. The GitHub App install URL is deployment-specific; set `ALTIMATE_CODE_GITHUB_APP_INSTALL_URL` before running this command.

### Manual Setup

1. [Install the GitHub app](https://github.com/apps/altimate-code-agent/installations/new) and select the target repository.
2. Add the following workflow file to `.github/workflows/altimate-code.yml` in your repo. Set the appropriate `model` and required API keys in `env`.
1. Add the following workflow file to `.github/workflows/altimate-code.yml` in your repo. Set the appropriate `model` and required API keys in `env`.

```yml
name: altimate-code
Expand Down Expand Up @@ -97,7 +96,7 @@ This will walk you through installing the GitHub app, creating the workflow, and
use_github_token: true
```

3. Store the API keys in secrets. In your organization or project **settings**, expand **Secrets and variables** on the left and select **Actions**. Add the required API keys.
2. Store the API keys in secrets. In your organization or project **settings**, expand **Secrets and variables** on the left and select **Actions**. Add the required API keys.

## Support

Expand Down
8 changes: 7 additions & 1 deletion packages/opencode/src/cli/cmd/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ type IssueQueryResponse = {
const AGENT_USERNAME = "altimate-code-agent[bot]"
const AGENT_REACTION = "eyes"
const WORKFLOW_FILE = ".github/workflows/altimate-code.yml"
export const GITHUB_APP_INSTALL_URL = "https://github.com/apps/altimate-code-agent/installations/new"
export const GITHUB_APP_INSTALL_URL = process.env.ALTIMATE_CODE_GITHUB_APP_INSTALL_URL ?? ""
// altimate_change end

// Event categories for routing
Expand Down Expand Up @@ -335,6 +335,12 @@ export const GithubInstallCommand = cmd({
// Open browser
// altimate_change start — upstream_fix: GitHub App slug is altimate-code-agent
const url = GITHUB_APP_INSTALL_URL
if (!url) {
s.stop(
"GitHub app installation URL is not configured. Set ALTIMATE_CODE_GITHUB_APP_INSTALL_URL to your GitHub App install URL.",
)
throw new UI.CancelledError()
}
// altimate_change end
const command =
process.platform === "darwin"
Expand Down
4 changes: 2 additions & 2 deletions packages/opencode/test/cli/github-action.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { extractResponseText, formatPromptTooLargeError, GITHUB_APP_INSTALL_URL
import type { MessageV2 } from "../../src/session/message-v2"
import { SessionID, MessageID, PartID } from "../../src/session/schema"

test("GitHub App install URL opens the repository-selection flow", () => {
expect(GITHUB_APP_INSTALL_URL).toBe("https://github.com/apps/altimate-code-agent/installations/new")
test("GitHub App install URL is not hardcoded to a public slug", () => {
expect(GITHUB_APP_INSTALL_URL).toBe("")
})

// Helper to create minimal valid parts
Expand Down
Loading