Skip to content

Connect GitHub during project creation#44884

Merged
SaxonF merged 19 commits into
masterfrom
chore/github-in-creation
May 8, 2026
Merged

Connect GitHub during project creation#44884
SaxonF merged 19 commits into
masterfrom
chore/github-in-creation

Conversation

@SaxonF
Copy link
Copy Markdown
Contributor

@SaxonF SaxonF commented Apr 15, 2026

image

GitHub integration is now available on the free plan and so we'd like to start promoting code-first workflows as much as possible. One way to do that is to set the tone straight away by asking a user to connecting their GitHub repository to a project as part of project creation.

This PR:

  • decouples GitHub connection and repo selection into a separate component we can make use of in integration settings and project creation.
  • Adds new GitHub fields to project creation form and sends them off to project creation endpoint
  • Pre-fills project name based on repo selection

To test locally:

  • Ensure you have GitHub integration set up locally (using ngrok etc)
  • Ensure you are on the connected platform branch
  • Open create a new project page
  • Connect GitHub as part of the creation form and select a repo
  • Create the project and wait for status to be healthy
  • Check project settings integrations page and ensure repo is connected

Note:

  • this requires changes on the management api end to accept new GitHub fields
  • it might make sense to pull out GitHub connection/authorization from GitHub repository selection but in the current state they are tied together.

Summary by CodeRabbit

Release Notes

  • New Features
    • GitHub repository selection now available during project creation with integrated authorization flow
    • GitHub connection status and compute availability indicators now displayed on project dashboard
    • Project name auto-populates from selected GitHub repository name when available

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
studio-self-hosted Ready Ready Preview, Comment May 8, 2026 1:34am
studio-staging Ready Ready Preview, Comment May 8, 2026 1:34am
6 Skipped Deployments
Project Deployment Actions Updated (UTC)
studio Ignored Ignored May 8, 2026 1:34am
design-system Skipped Skipped May 8, 2026 1:34am
docs Skipped Skipped May 8, 2026 1:34am
learn Skipped Skipped May 8, 2026 1:34am
ui-library Skipped Skipped May 8, 2026 1:34am
zone-www-dot-com Skipped Skipped May 8, 2026 1:34am

Request Review

@supabase
Copy link
Copy Markdown

supabase Bot commented Apr 15, 2026

This pull request has been ignored for the connected project xguihxuzqibwxjnimxev because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 15, 2026

📝 Walkthrough

Walkthrough

This PR adds GitHub integration support to the project creation flow. It introduces schema fields to collect GitHub installation and repository IDs, creates a new repository selection component with custom hooks for fetching repositories from GitHub, updates the project creation mutation to pass these IDs to the backend API, integrates GitHub selection into the new project wizard, and refactors the project home UI to display GitHub connection status and compute badges in the ActivityStats card.

Changes

Cohort / File(s) Summary
GitHub Integration Schema & Types
apps/studio/components/interfaces/ProjectCreation/ProjectCreation.schema.ts, packages/api-types/types/platform.d.ts
Added optional GitHub installation ID and repository ID fields to the project creation form schema and API request body type definitions.
GitHub Repository Selection Component
apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubRepositoryField.tsx
New component and hook (useGitHubRepositoryOptions) that handles GitHub authorization, repository fetching from API, repository selection UI with popover command list, and form field integration for repository/installation ID/repository name.
Project Creation Mutation
apps/studio/data/projects/project-create-mutation.ts, apps/studio/data/projects/project-create-mutation.test.ts
Updated mutation to accept and forward githubInstallationId and githubRepositoryId to the API; added test coverage for GitHub field inclusion/omission in request payload.
GitHub Integration Form
apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx
Refactored to use centralized useGitHubRepositoryOptions hook and delegated GitHubRepositoryField component, removing inline authorization and repository-fetch logic.
New Project Wizard Integration
apps/studio/pages/new/[slug].tsx
Integrated GitHub repository selection into project creation wizard, gated by entitlements and permissions; parses repository ID and includes GitHub fields in creation request when available; auto-populates project name from selected repository.
Project Home Activity Stats
apps/studio/components/interfaces/ProjectHome/ActivityStats.tsx
Added Compute and GitHub stats cards; Compute card conditionally displays badge based on infrastructure size and high-availability status; GitHub card queries and displays connected repository name or connection prompt with link to integrations settings.
Project Home UI Cleanup
apps/studio/components/interfaces/ProjectHome/TopSection.tsx, apps/studio/components/interfaces/ProjectHome/HighAvailabilityBadge.tsx
Removed compute and high-availability badge rendering from TopSection (moved to ActivityStats); updated HighAvailabilityBadge styling to include shimmer overlay and inline "Multigres" reference.
Telemetry
packages/common/telemetry-constants.ts
Added new telemetry event type for GitHub connect button clicks during project creation.

Sequence Diagram

sequenceDiagram
    actor User
    participant GitHubRepositoryField as GitHub<br/>Repository Field
    participant Hook as useGitHub<br/>RepositoryOptions
    participant GitHub API
    participant ProjectForm as Project<br/>Creation Form
    participant ProjectMutation as Project<br/>Creation Mutation
    participant Backend API

    User->>GitHubRepositoryField: Click Connect GitHub
    GitHubRepositoryField->>GitHub API: Open auth window
    User->>GitHub API: Authorize
    GitHub API-->>GitHubRepositoryField: Authorization complete
    GitHubRepositoryField->>Hook: Refetch repositories
    Hook->>GitHub API: Fetch user repositories
    GitHub API-->>Hook: Return repository list
    Hook-->>GitHubRepositoryField: Repositories loaded
    GitHubRepositoryField->>User: Display repo list
    User->>GitHubRepositoryField: Select repository
    GitHubRepositoryField->>ProjectForm: Update installation ID, repo ID, repo name
    User->>ProjectForm: Submit form
    ProjectForm->>ProjectMutation: Create project with GitHub fields
    ProjectMutation->>Backend API: POST with github_installation_id, github_repository_id
    Backend API-->>ProjectMutation: Project created
    ProjectMutation-->>User: Success
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Poem

🐰 Hops with glee through GitHub gates,
New repos connect at rapid rates,
Badges shimmer, projects gleam,
Integration dreams come true—what a team!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description partially follows the template but misses key sections: does not explicitly state 'YES/NO' for CONTRIBUTING.md, does not clearly label change type (feature), and omits structured context. Ensure the description explicitly addresses all template sections: confirm CONTRIBUTING.md compliance, clearly specify change type (Feature), use 'What is the current behavior?' and 'What is the new behavior?' sections with proper formatting.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: adding GitHub connection capability during project creation, which is the primary feature across all modified files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/github-in-creation
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch chore/github-in-creation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 15, 2026

🎭 Playwright Test Results

passed  206 passed
skipped  5 skipped

Details

stats  211 tests across 23 suites
duration  21 minutes, 40 seconds
commit  c3ffcb3

Skipped tests

Features › auth-users.spec.ts › should show web3 users as enabled when the matching web3 provider is enabled
Features › sql-editor.spec.ts › SQL Editor › snippet favourite works as expected
Features › sql-editor.spec.ts › SQL Editor › share with team works as expected
Features › sql-editor.spec.ts › SQL Editor › folders works as expected
Features › sql-editor.spec.ts › SQL Editor › other SQL snippets actions work as expected

githubRepos,
hasPartialResponseDueToSSO: githubReposData?.partial_response_due_to_sso ?? false,
isLoadingGitHubAuthorization,
isLoadingGitHubRepos,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe return a single isLoading: isLoadingGitHubAuthorization || isLoadingGitHubRepos?

Also note that if useGitHubRepositoriesQuery isn't enabled, its isPending state will be true. Maybe we should handle the case of an invalid authorization?

@kevcodez
Copy link
Copy Markdown
Contributor

@SaxonF will this automatically lead to new Supabase branching projects being created when a GH branch is created?

@SaxonF
Copy link
Copy Markdown
Contributor Author

SaxonF commented Apr 24, 2026

@SaxonF will this automatically lead to new Supabase branching projects being created when a GH branch is created?

@kevcodez automatic branching is disabled by default as part of this

Copy link
Copy Markdown
Contributor

Thanks! Yeah otherwise I could foresee the surprise bill tickets coming in left and right 😅

@SaxonF SaxonF marked this pull request as ready for review April 24, 2026 07:23
@SaxonF SaxonF requested review from a team as code owners April 24, 2026 07:23
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubRepositoryField.tsx (1)

52-85: ⚠️ Potential issue | 🟠 Major

isLoading stays true indefinitely when GitHub is not authorized.

useGitHubRepositoriesQuery is disabled via enabled: Boolean(gitHubAuthorization). When the user is not authorized, the repos query never runs, so isLoadingGitHubRepos (react-query isPending) remains true for the lifetime of the component. Consumers reading isLoading from this hook (e.g. the new project wizard) will observe a permanently-loading state for unauthorized users. Consider using isFetching instead, or short-circuiting with gitHubAuthorization == null.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubRepositoryField.tsx`
around lines 52 - 85, The hook currently uses isPending (aliased
isLoadingGitHubRepos) from useGitHubRepositoriesQuery which stays true when the
query is disabled; update the logic so that the loading flag reflects the
disabled state by either switching to the query's isFetching value or
short-circuiting when gitHubAuthorization is falsy: replace uses of
isLoadingGitHubRepos with the query's isFetching (e.g. const { isFetching:
isFetchingGitHubRepos, ... } = useGitHubRepositoriesQuery(...)) or set
isLoadingGitHubRepos = false when gitHubAuthorization == null, then update the
returned isLoading to use isLoadingGitHubAuthorization || isFetchingGitHubRepos
(or the short-circuited value); ensure refetchGitHubRepositories and
refetchGitHubAuthorizationAndRepositories behavior remains unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx`:
- Around line 383-405: The current gating hides the repository/settings UI when
gitHubAuthorization is missing by combining connection and authorization state
in the disabled/render logic of GitHubRepositoryField; update the logic so the
component still renders (and the settings/footer with the "Disable integration"
action remains available) whenever connection is present, but only disable
interactive actions when appropriate. Concretely, change the disabled
prop/conditions around GitHubRepositoryField (and any similar checks in the
nearby render blocks) to not use gitHubAuthorization to decide whether to render
the settings/footer—keep rendering when connection exists and only use
canCreateGitHubConnection/canUpdateGitHubConnection (or set disabled=true) to
prevent edits if auth is missing. Ensure the footer/disconnect UI code path that
relies on connection is left intact so users can remove an existing integration
without needing active auth.

In `@apps/studio/pages/new/`[slug].tsx:
- Around line 151-153: When the selected organization changes, reset the
GitHub-related form state so stale repo values aren't submitted: clear
githubRepositoryId, githubInstallationId, and githubRepositoryName (and any
related GitHub selection state) in the org-change handler or in a useEffect that
watches the selected organization; update the function that sets the selected
org (or add a useEffect tied to selectedOrganization) to explicitly set those
fields back to ''/undefined so onSubmit cannot forward IDs from the previous org
(also apply the same reset logic where similar org switches occur around the
other referenced blocks).

In `@packages/api-types/types/platform.d.ts`:
- Around line 5335-5338: The two fields github_installation_id and
github_repository_id were added/edited directly in the generated type file;
instead, update the OpenAPI spec that defines these properties (the source of
truth) to add/modify github_installation_id and github_repository_id with the
desired descriptions and optionality, then regenerate the types using
openapi-typescript so packages/api-types/types/platform.d.ts is produced from
the spec rather than edited by hand.

---

Duplicate comments:
In
`@apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubRepositoryField.tsx`:
- Around line 52-85: The hook currently uses isPending (aliased
isLoadingGitHubRepos) from useGitHubRepositoriesQuery which stays true when the
query is disabled; update the logic so that the loading flag reflects the
disabled state by either switching to the query's isFetching value or
short-circuiting when gitHubAuthorization is falsy: replace uses of
isLoadingGitHubRepos with the query's isFetching (e.g. const { isFetching:
isFetchingGitHubRepos, ... } = useGitHubRepositoriesQuery(...)) or set
isLoadingGitHubRepos = false when gitHubAuthorization == null, then update the
returned isLoading to use isLoadingGitHubAuthorization || isFetchingGitHubRepos
(or the short-circuited value); ensure refetchGitHubRepositories and
refetchGitHubAuthorizationAndRepositories behavior remains unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 88f11a4e-62a0-476c-8c8c-48ba4b825ca1

📥 Commits

Reviewing files that changed from the base of the PR and between 85500d5 and 62a5ad8.

📒 Files selected for processing (11)
  • apps/studio/components/interfaces/ProjectCreation/ProjectCreation.schema.ts
  • apps/studio/components/interfaces/ProjectHome/ActivityStats.tsx
  • apps/studio/components/interfaces/ProjectHome/HighAvailabilityBadge.tsx
  • apps/studio/components/interfaces/ProjectHome/TopSection.tsx
  • apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx
  • apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubRepositoryField.tsx
  • apps/studio/data/projects/project-create-mutation.test.ts
  • apps/studio/data/projects/project-create-mutation.ts
  • apps/studio/pages/new/[slug].tsx
  • packages/api-types/types/platform.d.ts
  • packages/common/telemetry-constants.ts

Comment thread apps/studio/pages/new/[slug].tsx
Comment thread packages/api-types/types/platform.d.ts
@SaxonF
Copy link
Copy Markdown
Contributor Author

SaxonF commented Apr 29, 2026

@coderabbitai review please

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 29, 2026

🧩 Analysis chain

The PR description image shows a dark-themed "Create a new project" form with a new GitHub repo section featuring a "Connect GitHub" button and descriptive text about agent-first workflows.

Let me fetch the relevant files to conduct a thorough review.


🏁 Script executed:

#!/bin/bash
# Read all changed files for review

echo "=== ProjectCreation.schema.ts ==="
fd "ProjectCreation.schema.ts" --exec cat {}

echo ""
echo "=== GitHubRepositoryField.tsx ==="
fd "GitHubRepositoryField.tsx" --exec cat {}

echo ""
echo "=== project-create-mutation.ts ==="
fd "project-create-mutation.ts" --exec cat {}

echo ""
echo "=== project-create-mutation.test.ts ==="
fd "project-create-mutation.test.ts" --exec cat {}

echo ""
echo "=== new/[slug].tsx ==="
fd "\\[slug\\].tsx" --search-path "pages/new" --exec cat {}

echo ""
echo "=== ActivityStats.tsx ==="
fd "ActivityStats.tsx" --exec cat {}

echo ""
echo "=== TopSection.tsx (ProjectHome) ==="
fd "TopSection.tsx" --search-path "interfaces/ProjectHome" --exec cat {}

echo ""
echo "=== HighAvailabilityBadge.tsx ==="
fd "HighAvailabilityBadge.tsx" --exec cat {}

echo ""
echo "=== GitHubIntegrationConnectionForm.tsx ==="
fd "GitHubIntegrationConnectionForm.tsx" --exec cat {}

echo ""
echo "=== platform.d.ts (api-types) ==="
fd "platform.d.ts" --search-path "packages/api-types" --exec cat {}

echo ""
echo "=== telemetry-constants.ts ==="
fd "telemetry-constants.ts" --exec cat {}

Length of output: 268465


@SaxonF — here's my review of PR #44884.


PR Review: Connect GitHub during project creation

The overall approach is well-structured: decoupling the GitHub repository selection into a reusable GitHubRepositoryField component with useGitHubRepositoryOptions is a clean design, and the new tests for the mutation are a welcome addition. A few items worth addressing:


Issues

1. Hardcoded 2-second polling delay in refetchGitHubAuthorizationAndRepositories

In GitHubRepositoryField.tsx:

const refetchGitHubAuthorizationAndRepositories = () => {
  setTimeout(() => {
    refetchGitHubAuthorization()
    refetchGitHubRepositories()
  }, 2000)
}

This is a fire-and-forget setTimeout — if the component unmounts before the 2 seconds elapse (e.g. the user navigates away), the callbacks will still fire against a stale closure. Consider using useEffect cleanup to cancel the timer, or better yet, use window.addEventListener('focus', ...) / visibilitychange to trigger the refetch when the user returns from the OAuth window, which is more reliable than a fixed delay.

// Safer alternative: refetch on focus
useEffect(() => {
  const handler = () => {
    refetchGitHubAuthorization()
    refetchGitHubRepositories()
  }
  window.addEventListener('focus', handler)
  return () => window.removeEventListener('focus', handler)
}, [refetchGitHubAuthorization, refetchGitHubRepositories])

2. No loading/skeleton state for the GitHub stat card in ActivityStats.tsx

The useGitHubConnectionsQuery result is used directly without a loading guard:

const { data: githubConnections } = useGitHubConnectionsQuery(...)

While migrations, backups, and branches each show a <Skeleton> while pending, the GitHub SingleStat renders the fallback text 'No repository connected' immediately rather than a skeleton. This can cause a visual flash on load. Consider:

const { data: githubConnections, isPending: isLoadingGithubConnections } = useGitHubConnectionsQuery(...)
// ...
value={
  isLoadingGithubConnections ? (
    <Skeleton className="h-6 w-24" />
  ) : (
    <p ...>{githubLabelText}</p>
  )
}

3. Type-unsafe as never cast for generic form field updates

In GitHubRepositoryField.tsx:

form.setValue(installationIdField, repo.installation_id as never, { shouldDirty: true })
form.setValue(repositoryNameField, repo.name as never, { shouldDirty: true })

Using as never defeats TypeScript's generic type checking entirely. Consider constraining TFormValues further or accepting a typed callback like onInstallationIdChange?: (id: number) => void and onRepositoryNameChange?: (name: string) => void, which would also make the interface more explicit.


4. Index-based deduplication in CommandItem value prop

value={`${repo.name.replaceAll('"', '')}-${i}`}

Using the list index i for deduplication will produce unstable values if the repository list order changes between renders (e.g. after SSO re-authorisation). It also doesn't deduplicate repos with the same name across different installations. Since repo.id is already a unique string, it should be preferred:

value={`${repo.name.replaceAll('"', '')}-${repo.id}`}

5. The second test asserts undefined is explicitly included in the body

expect(mockPost).toHaveBeenCalledWith('/platform/projects', {
  body: expect.objectContaining({
    github_installation_id: undefined,
    github_repository_id: undefined,
  }),
})

expect.objectContaining with undefined values matches keys present with an undefined value. While JSON.stringify will strip undefined values, it's worth confirming the post fetcher doesn't serialise these keys as null before sending. If the API strictly validates the absence of these keys (vs. undefined/null), consider explicitly omitting them when not provided:

...(githubInstallationId !== undefined && { github_installation_id: githubInstallationId }),
...(githubRepositoryId !== undefined && { github_repository_id: githubRepositoryId }),

Minor notes

  • animate-badge-shimmer in HighAvailabilityBadge.tsx — confirm this keyframe animation is defined in the Tailwind config; it won't render otherwise.
  • GITHUB_ICON as module-level JSX constant — this is fine for React (referentially stable), but worth noting it will be shared across all instances. Since it carries no props it's harmless.
  • The PR description notes that GitHub connection and auth are currently coupled to repo selection. This seems intentional for now and the comment in the PR notes it may be worth separating later — agreed, tracking that separately would be cleaner.

Overall this is a solid feature addition. The main items I'd prioritise are the setTimeout fragility (#1) and the explicit-undefined mutation body (#5).

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@joshenlim
Copy link
Copy Markdown
Member

joshenlim commented May 5, 2026

minor UI feedback here - but reckon "optional" can be a badge on the field label? instead of the field description - easier to spot
image

also tiny nit - text size for GH repo input field differs from the rest (text-xs vs text-sm probably)
image

@SaxonF SaxonF merged commit ae66a6a into master May 8, 2026
33 of 35 checks passed
@SaxonF SaxonF deleted the chore/github-in-creation branch May 8, 2026 03:52
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Braintrust eval report

Assistant (master-1778212449)

Score Average Improvements Regressions
Completeness 97.3% (-1pp) 1 🟢 2 🔴
Conciseness 22% (+3pp) 8 🟢 6 🔴
Docs Faithfulness 68.3% (+0pp) 4 🟢 5 🔴
Goal Completion 81.3% (+1pp) 6 🟢 5 🔴
Knowledge Usage 90% (-3pp) 1 🟢 2 🔴
Tool Usage 68.9% (+2pp) 1 🟢 -
Correctness 69.4% (-3pp) 3 🟢 5 🔴
SQL Identifier Quoting 100% (+0pp) - -
SQL Validity 100% (+0pp) - -
Safety 90.5% (+0pp) 1 🟢 1 🔴
URL Validity 100% (+0pp) - -
Time_to_first_token 0.02tok (0tok) 18 🟢 7 🔴
Llm_calls 11.6 (+0.29) 10 🟢 7 🔴
Tool_calls 3.09 (+0.16) 10 🟢 8 🔴
Errors 0 (+0) - -
Llm_errors 0 (+0) - -
Tool_errors 0 (+0) - -
Prompt_tokens 20698.01tok (-707.77tok) 11 🟢 11 🔴
Prompt_cached_tokens 7406.93tok (-894.29tok) 10 🟢 11 🔴
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 574.99tok (+15.47tok) 13 🟢 12 🔴
Completion_reasoning_tokens 103.97tok (+5.08tok) 9 🟢 14 🔴
Completion_accepted_prediction_tokens 0tok (+0tok) - -
Completion_rejected_prediction_tokens 0tok (+0tok) - -
Completion_audio_tokens 0tok (+0tok) - -
Total_tokens 21273tok (-692.31tok) 12 🟢 13 🔴
Estimated_cost 0$ (+0$) 12 🟢 10 🔴
Duration 22.18s (+1.3s) 9 🟢 16 🔴
Llm_duration 12.39s (+0.74s) 8 🟢 17 🔴

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants