Skip to content

docs: clarify github integration repo creation and sync behavior - #11401

Draft
MikeNitsenko wants to merge 1 commit into
masterfrom
docs-CUB-2810/clarify-github-integration-repo-creation-and-sync-behavior
Draft

docs: clarify github integration repo creation and sync behavior#11401
MikeNitsenko wants to merge 1 commit into
masterfrom
docs-CUB-2810/clarify-github-integration-repo-creation-and-sync-behavior

Conversation

@MikeNitsenko

Copy link
Copy Markdown
Contributor

No description provided.

@mintlify

mintlify Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
cubed3 🟢 Ready View Preview Jul 28, 2026, 6:34 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@claude

claude Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Claude finished @MikeNitsenko's task in 2m 9s —— View job


Docs review — 1 medium-high, 3 medium, 2 low. Content is accurate and well-sourced; main asks are one heading-nesting fix and one webhook-scope correction.

Full review
  • Gather context (diff, changed files)
  • Read both changed docs pages in full
  • Check docs-mintlify/CLAUDE.md conventions
  • Cross-check factual claims against existing docs
  • Verify link targets and anchors
  • Post inline comments + summary

What's good

  • The concrete failure modes documented here are the ones users actually hit: the org-owner approval gate producing an empty repository list, the created-repo-not-under-my-account surprise, and the empty-repo → "data model not found" error. That's genuinely useful troubleshooting content, not filler.
  • The webhook-not-polling clarification plus the first-connection cold-start explanation directly answers the "why is my branch taking so long to appear" question, and correctly frames it as one-time warm-up.
  • Numbers check out against existing docs: the ~30 s per-branch cooldown matches import-git-repository-via-ssh.mdx:109, and the 10-minute staging suspension matches environments.mdx:58.
  • [ref-import-ssh] resolves to a real page (docs/getting-started/migrate-from-core/import-git-repository-via-ssh.mdx), and both in-page anchors (#deploy-with-github, #deploy-with-git) exist. No nav changes needed — both files are existing pages.

Findings

# Sev Where Issue
1 Medium-high continuous-deployment.mdx:107-131 The two new H3s push the "What happens after connecting depends on the deploy mode" list inside ### Creating a new repository, so deploy-mode behavior now reads as a property of newly-created repos.
2 Medium continuous-deployment.mdx:54-59 The Tip tells GitLab/Bitbucket users sync "stays in sync automatically through a webhook", but the SSH path requires manually adding the webhook URL. Actively misleading for that audience.
3 Medium import-github-repository.mdx:40-49 <Note> inserted between "you should see the following screen:" and the screenshot, orphaning the reference. Also a prerequisite, so it reads better before the click instruction.
4 Medium continuous-deployment.mdx:140-157 Non-production-branch auto-sync is now stated three times on this page (intro, per-deploy-mode list, this section); the 10-min/30-s figures are duplicated from two other pages and will drift.
5 Low continuous-deployment.mdx:93 *Create new repository* italic vs. bold UI labels used everywhere else, including in the section right below it.
6 Low import-github-repository.mdx:157 Missing trailing newline (pre-existing, but this PR touches the line); [ref-continuous-deployment] could deep-link to #github-app-permissions.

Naming convention

docs-mintlify/CLAUDE.md lists Cube Cloud as legacy naming not to be used in new content. This PR adds ~15 more instances. I'd normally flag that harder, but the surrounding page already has 29 of them, so matching local style is the defensible call — a page-wide rename is its own PR, not this one. Two exceptions worth keeping as-is regardless: "Cube Cloud GitHub App" is the literal installed app name, and "Cube Cloud Git remote" describes the cubecloud remote.

Not applicable

Security, performance, and testing are all N/A — docs-only change, no code, no new pages, no docs.json edits required. No secrets or credentials introduced (the Generate Git credentials flow is only referenced, not documented with example values).

One thing I could not verify

The model/ (legacy schema/) folder requirement and the exact "data model not found" error string are Cube Cloud-side behavior with no counterpart in this OSS repo, so I could not confirm the error text renders verbatim as quoted. Worth a quick check against the actual UI string, since the doc presents it in bold as an exact match users will search for.

· branch `docs-CUB-2810/clarify-github-integration-repo-creation-and-sync-behavior`

@github-actions github-actions Bot added the pr:community Contribution from Cube.js community members. label Jul 28, 2026
Comment on lines +107 to 131
### Creating a new repository

From the **Connect to GitHub** dialog you can either connect an existing
repository or choose **Create new repository** to have Cube Cloud create one for
you.

<Warning>

When Cube Cloud creates a repository in a **GitHub organization**, it is created
through the GitHub App installation. Depending on your organization's settings,
the person who initiated the creation is **not** automatically added as a
collaborator, and the new repository may not appear under your personal
repositories — look for it under the organization's repositories and add the
required collaborators or teams in GitHub afterwards.

A newly created repository also starts **empty**. Before a deployment can use a
project path inside it, the repository must contain a Cube project — that is, a
`model/` folder (the legacy `schema/` folder is also accepted). Connecting to an
empty repository, or to a path that has no `model/` folder, fails with a **"data
model not found"** error. Push an initial data model — or generate one from the
Cube Cloud UI — before pointing a deployment at it.

</Warning>

What happens after connecting depends on the deploy mode:

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.

Structure: the "What happens after connecting" list is now orphaned under an H3.

Before this PR, the What happens after connecting depends on the deploy mode: list (line 131) sat directly under ## Deploy with GitHub, which is where it belongs — it describes the outcome of connecting a repository, not of creating one. Inserting ### GitHub App permissions and ### Creating a new repository above it means the list now renders inside the Creating a new repository subsection, so a reader scanning headings will read "in Deploy with Git mode, Cube Cloud will automatically deploy…" as a property of newly-created repositories.

Move the two new H3s below that list (they're detail/edge-case material anyway, so trailing the main flow reads better), or promote the list into its own ### After connecting subsection so it isn't captured by the preceding H3.

Fix this →

Comment on lines +54 to +59
If your data model already lives in a hosted Git provider (GitHub, GitLab, or
Bitbucket), **connect that repository directly** — see [Deploy with
GitHub](#deploy-with-github) below, or [import via SSH][ref-import-ssh] for
GitLab and Bitbucket. You then push only to your own repository and Cube Cloud
stays in sync automatically through a webhook, with no need to also push to the
`cubecloud` remote.

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.

Accuracy: webhook sync isn't automatic for the SSH path.

The sentence lumps GitLab/Bitbucket in with GitHub and says Cube "stays in sync automatically through a webhook". For the GitHub App path that's true — the app registers the webhook for you (as the new GitHub App permissions section says). For the SSH path it isn't: import-git-repository-via-ssh.mdx:64-74 instructs the user to copy the webhook URL out of the UI and add it to their repository's webhooks themselves. A reader who follows this Tip for GitLab will connect via SSH, never add the webhook, and then find that pushes don't sync — with this page telling them it should be automatic.

Suggest splitting the clause, e.g. "…automatically through a webhook (registered for you with the GitHub App; [configured manually][ref-import-ssh] for GitLab and Bitbucket)".

Comment on lines +40 to +49
<Note>

Install the Cube Cloud GitHub app on the **organization** that owns the
repository, and grant it access to that repository (or to all repositories). If
your organization restricts third-party apps, an **organization owner must
approve the installation** before the repository will appear in the list. For
the full list of permissions the app requests, and guidance on creating a new
repository from Cube Cloud, see [Continuous deployment][ref-continuous-deployment].

</Note>

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.

The preceding sentence ends "…you should see the following screen in Cube Cloud:" and this <Note> now sits between it and the screenshot, so "the following screen" no longer points at anything adjacent. Move the callout above the paragraph at line 35 (it's a prerequisite — it should be read before clicking Import from a GitHub repository), or below the <div> that holds the image.

Two smaller things while you're here:

  • The link target could deep-link to the new subsection: [ref-continuous-deployment]: /admin/deployment/continuous-deployment#github-app-permissions.
  • Line 157 still has no trailing newline (pre-existing, but this PR is already touching that line — easy to fix).

- **Read repository contents** — to clone your data model and pick up new
commits.
- **Administer repositories** — to create a repository on your behalf when you
choose *Create new repository* (see below).

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.

Nit: UI labels are bolded everywhere else on this page (Connect to GitHub, Build & Deploy, Generate Git credentials) — including in the section you add right below, which uses **Create new repository**. Use bold here too for consistency.

Suggested change
choose *Create new repository* (see below).
choose **Create new repository** (see below).

Comment on lines +140 to +157
## Keeping your repository in sync

Once a repository is connected, Cube Cloud is notified of new commits through a
webhook — it does **not** poll your provider on a timer. In steady state a push
to a connected branch is picked up within seconds, and the Cube Cloud UI
reflects build and sync status within about ten seconds. A short (~30 second)
per-branch cooldown between webhook events means rapid consecutive pushes to the
same branch may be briefly coalesced.

The **first connection** behaves differently. When you first connect a
repository, Cube Cloud performs a one-time full clone of it, registers the
webhook, and — for a newly provisioned or previously suspended deployment —
starts the staging, [development mode][ref-dev-mode], and IDE instances from a
cold state. Because of this, the first time a branch or commit appears in a
[staging environment][ref-environments-staging], development mode, the IDE, or
**Cubes & Views** in Explore can take noticeably longer (and longer still for
large repositories). This is a one-time warm-up: after the initial clone
completes and the instances are running, later pushes sync within seconds.

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.

Two notes on this section:

  1. Overlap with the page intro. Lines 20–25 already state that "Non-production branches pushed to GitHub are then auto-synced into Cube Cloud", and lines 131–138 repeat it per deploy mode. This section says it a third time. docs-mintlify/CLAUDE.md explicitly asks for "say it once" / no padding — consider trimming to the two facts that are genuinely new here (webhook-not-polling, and the first-connection cold start) and dropping the restatement.

  2. The ~30 second cooldown and the 10-minute suspension are already documented elsewhere (import-git-repository-via-ssh.mdx:109 and environments.mdx:58) — so the numbers check out, but they're now stated in three places and will drift. Prefer linking ([staging environment][ref-environments-staging] already exists here) over restating the 10-minute figure.

The about ten seconds UI-refresh figure (line 145) is the one claim I can't corroborate anywhere in the docs; consider "within a few seconds" unless that number is something support genuinely quotes.

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

Labels

pr:community Contribution from Cube.js community members.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant