mirror of
https://github.com/github/gh-stack.git
synced 2026-09-14 20:26:28 +08:00
7a268fc380
* git primitives for modify cmd * extract reusable TUI parts * modify cmd * recreate stack after modify * add checks to prevent other modifications while modify is applying * modify continue for resuming after resolving conflicts * fix bug with duplicate stack entries after modifying * reuse conflict resolution help msg from rebase * additional confirmation before overwriting stack on remote * fix recreate order of operations Co-authored-by: Copilot <copilot@github.com> * move base commit instead of cherry picking for fold up * check to ensure we aren't left with zero branches * unify and dedupe across view and modify tui * more detailed help instructions Co-authored-by: Copilot <copilot@github.com> * only recommend submit if stack exists on remote Co-authored-by: Copilot <copilot@github.com> * tests for modify tui, apply modifications, submit modifications * refactor submit for regular and pending modifications * rename recover to abort Co-authored-by: Copilot <copilot@github.com> * docs for modify cmd * tui styling updates * updated tui screenshot * addressing review comments * Fix 4 bugs from code review Bug 1: Move RevParseMap error check before using originalRefs. The error from git.RevParseMap() was deferred past iteration of originalRefs, which could panic on a nil map. Bug 2: Differentiate cherry-pick vs rebase conflicts in modify. Cherry-pick conflicts don't save state as 'conflict' phase, so --continue won't work. Now prints --abort-only instructions for cherry-pick conflicts. Bug 3: Unwind now cleans up branches created by renames. After restoring snapshot branches, Unwind deletes renamed branch names that don't belong to the original snapshot. Bug 4: Simplify push message in submit command. Changed from 'Pushing N branches to remote...' to 'Pushing to remote...' since individual branches may fail. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix 7 nit issues from code review 11: Add named constants for phase strings (PhaseApplying, PhaseConflict, PhasePendingSubmit) in state.go; replace remaining raw literals in state.go CheckStateGuard. 14: Fix bottomLines comment mismatch — listed 3 items but value is 2. 15: Extract magic number 88 to MinWidthForArt constant in header.go. 16: Remove unused stackview import anchor in model.go — the import is used via types.go where BranchNode is embedded. 17: Simplify CheckStackLinearity parent resolution — ActiveBaseBranch already handles skipping merged branches. 18: Fix rename undo matching any rename — add NewName check so only the specific rename being undone is matched. 20: Add TestUndoRename and TestUndoRename_DoesNotAffectOtherRenames to validate rename undo behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Make cherry-pick conflicts recoverable via --continue Previously, cherry-pick conflicts during fold-down operations could only be resolved with --abort. Now they save full conflict state (phase, conflict type, fold branch/target, remaining branches) to the state file, enabling recovery via 'gh stack modify --continue'. Changes: - Add ConflictType field to StateFile (rebase or cherry_pick) - Add FoldBranch/FoldTarget fields for cherry-pick context - Add CherryPickContinue to git package (cherry-pick --continue) - Save cherry-pick conflict state in ApplyPlan with remaining branches - ContinueApply handles both rebase and cherry-pick conflicts - Unified conflict messaging in cmd/modify.go (both types show --continue) - Updated test to verify cherry-pick conflict state is saved correctly * Apply suggestions from code review Co-authored-by: Luke Ghenco <lukeghenco@github.com> Co-authored-by: Sameen Karim <skarim@github.com> --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Luke Ghenco <lukeghenco@github.com>
86 lines
2.6 KiB
JavaScript
86 lines
2.6 KiB
JavaScript
// @ts-check
|
|
import { defineConfig } from 'astro/config';
|
|
import starlight from '@astrojs/starlight';
|
|
|
|
// https://astro.build/config
|
|
export default defineConfig({
|
|
site: 'https://github.github.com',
|
|
base: '/gh-stack/',
|
|
trailingSlash: 'always',
|
|
devToolbar: {
|
|
enabled: false
|
|
},
|
|
integrations: [
|
|
starlight({
|
|
title: 'GitHub Stacked PRs',
|
|
description: 'Break large changes into small, reviewable pull requests that build on each other — with native GitHub support and the gh stack CLI.',
|
|
favicon: '/favicon.svg',
|
|
logo: {
|
|
src: './src/assets/github-invertocat.svg',
|
|
alt: 'GitHub',
|
|
},
|
|
head: [
|
|
{ tag: 'meta', attrs: { property: 'og:type', content: 'website' } },
|
|
{ tag: 'meta', attrs: { property: 'og:site_name', content: 'GitHub Stacked PRs' } },
|
|
{ tag: 'meta', attrs: { property: 'og:image', content: 'https://github.github.com/gh-stack/github-social-card.jpg' } },
|
|
{ tag: 'meta', attrs: { property: 'og:image:alt', content: 'GitHub Stacked PRs — Break large changes into small, reviewable pull requests' } },
|
|
{ tag: 'meta', attrs: { property: 'og:image:width', content: '1200' } },
|
|
{ tag: 'meta', attrs: { property: 'og:image:height', content: '630' } },
|
|
{ tag: 'meta', attrs: { name: 'twitter:card', content: 'summary_large_image' } },
|
|
{ tag: 'meta', attrs: { name: 'twitter:site', content: '@github' } },
|
|
{ tag: 'meta', attrs: { name: 'twitter:image', content: 'https://github.github.com/gh-stack/github-social-card.jpg' } },
|
|
],
|
|
components: {
|
|
SocialIcons: './src/components/CustomHeader.astro',
|
|
},
|
|
customCss: [
|
|
'./src/styles/custom.css',
|
|
],
|
|
tableOfContents: {
|
|
minHeadingLevel: 2,
|
|
maxHeadingLevel: 4
|
|
},
|
|
pagination: true,
|
|
expressiveCode: {
|
|
frames: {
|
|
showCopyToClipboardButton: true,
|
|
},
|
|
},
|
|
sidebar: [
|
|
{
|
|
label: 'Introduction',
|
|
items: [
|
|
{ label: 'Overview', slug: 'introduction/overview' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Getting Started',
|
|
items: [
|
|
{ label: 'Quick Start', slug: 'getting-started/quick-start' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Guides',
|
|
items: [
|
|
{ label: 'Working with Stacked PRs', slug: 'guides/stacked-prs' },
|
|
{ label: 'Stacked PRs in the GitHub UI', slug: 'guides/ui' },
|
|
{ label: 'Typical Workflows', slug: 'guides/workflows' },
|
|
{ label: 'Restructuring Stacks', slug: 'guides/modify' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Reference',
|
|
items: [
|
|
{ label: 'CLI Commands', slug: 'reference/cli' },
|
|
{ label: 'Webhooks', slug: 'reference/webhooks' },
|
|
],
|
|
},
|
|
{
|
|
label: 'FAQ',
|
|
slug: 'faq',
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
});
|