Description
Now that the project has its own domain (https://open-codereview.ai/), we can serve the install scripts directly from it and shorten the install commands.
Today every install command points at the long raw GitHub URL:
# current
curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh | sh
irm https://raw.githubusercontent.com/alibaba/open-code-review/main/install.ps1 | iex
With the scripts hosted on the domain, this becomes short and memorable (matching the industry convention of get.docker.com, sh.rustup.rs, etc.):
# desired
curl -fsSL https://open-codereview.ai/install.sh | sh
irm https://open-codereview.ai/install.ps1 | iex
The landing site is a static site deployed to GitHub Pages (.github/workflows/deploy-pages.yml), with the domain configured via pages/public/CNAME (open-codereview.ai). So any file that ends up in the built artifact root is reachable at https://open-codereview.ai/<file>.
Note: the install scripts do not hard-depend on the raw URL for their actual work — downloads go through the GitHub API + releases (install.sh main()); the raw.githubusercontent.com string only appears in the header comments. So hosting them under the domain is purely additive and safe.
Scope
- Hosting mechanism (pick one, single source of truth preferred):
- Recommended: in
.github/workflows/deploy-pages.yml, extend the Prepare deployment artifact step to also copy install.sh and install.ps1 into _site/ (it already does this for logo.svg). Keeps the scripts at repo root as the single source.
- Alternative: copy the scripts into
pages/public/ (webpack's CopyPlugin copies pages/public/* into dist, see pages/webpack.config.js), at the cost of maintaining duplicate files.
- Update install commands to the short domain URL:
- Optionally update the header comments inside
install.sh / install.ps1 to reference the short URL too.
Acceptance Criteria
Context
Discovered while reviewing #408, which redesigns the Hero section and introduces three install channels still using the long raw URLs. Ideally the URL swap lands together with, or right after, that PR so the new install channels ship with the short domain.
The GitHub Pages 404.html SPA fallback (pages/webpack.config.js) should not interfere, since real files take precedence over the fallback — worth a quick verification that the raw .sh/.ps1 content is served as-is (not the HTML shell) when fetched via curl.
Description
Now that the project has its own domain (
https://open-codereview.ai/), we can serve the install scripts directly from it and shorten the install commands.Today every install command points at the long raw GitHub URL:
With the scripts hosted on the domain, this becomes short and memorable (matching the industry convention of
get.docker.com,sh.rustup.rs, etc.):The landing site is a static site deployed to GitHub Pages (
.github/workflows/deploy-pages.yml), with the domain configured viapages/public/CNAME(open-codereview.ai). So any file that ends up in the built artifact root is reachable athttps://open-codereview.ai/<file>.Note: the install scripts do not hard-depend on the raw URL for their actual work — downloads go through the GitHub API + releases (
install.shmain()); theraw.githubusercontent.comstring only appears in the header comments. So hosting them under the domain is purely additive and safe.Scope
.github/workflows/deploy-pages.yml, extend the Prepare deployment artifact step to also copyinstall.shandinstall.ps1into_site/(it already does this forlogo.svg). Keeps the scripts at repo root as the single source.pages/public/(webpack'sCopyPlugincopiespages/public/*intodist, seepages/webpack.config.js), at the cost of maintaining duplicate files.pages/src/components/HeroSection.tsx(theINSTALL_CHANNELSarray — note this is also touched by feat(pages): redesign hero with two-column layout and three install channels #408)README.md,README.zh-CN.md,README.ja-JP.md,README.ko-KR.md,README.ru-RU.mdpages/src/content/docs/{en,zh,ja}/installation.md,.../integrations/ci.md,.../integrations/claude-code.md,.../integrations/delegate.mdinstall.sh/install.ps1to reference the short URL too.Acceptance Criteria
install.shandinstall.ps1are included in the deployed Pages artifact and reachable athttps://open-codereview.ai/install.shandhttps://open-codereview.ai/install.ps1curl -fsSL https://open-codereview.ai/install.sh | shinstalls the CLI successfullyirm https://open-codereview.ai/install.ps1 | iexinstalls the CLI successfully on Windowsmake check)Context
Discovered while reviewing #408, which redesigns the Hero section and introduces three install channels still using the long raw URLs. Ideally the URL swap lands together with, or right after, that PR so the new install channels ship with the short domain.
The GitHub Pages
404.htmlSPA fallback (pages/webpack.config.js) should not interfere, since real files take precedence over the fallback — worth a quick verification that the raw.sh/.ps1content is served as-is (not the HTML shell) when fetched viacurl.