@cats-inc/cats-platform 0.1.9 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +7 -10
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +162 -55
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/cliInventoryProbe.d.ts +18 -0
- package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
- package/build/desktop/cliInventoryProbe.js +42 -0
- package/build/desktop/cliInventoryProbe.js.map +1 -1
- package/build/desktop/contracts.d.ts +9 -0
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/main.js +101 -20
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +35 -2
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/tray.d.ts +1 -1
- package/build/desktop/tray.d.ts.map +1 -1
- package/build/desktop/tray.js +2 -7
- package/build/desktop/tray.js.map +1 -1
- package/build/desktop/trayMenu.d.ts +23 -2
- package/build/desktop/trayMenu.d.ts.map +1 -1
- package/build/desktop/trayMenu.js +24 -30
- package/build/desktop/trayMenu.js.map +1 -1
- package/build/desktop/updateDialog.d.ts +40 -0
- package/build/desktop/updateDialog.d.ts.map +1 -0
- package/build/desktop/updateDialog.js +178 -0
- package/build/desktop/updateDialog.js.map +1 -0
- package/build/desktop/updateNotifications.js +2 -2
- package/build/desktop/updateNotifications.js.map +1 -1
- package/build/desktop/updaterAdapter.d.ts +1 -0
- package/build/desktop/updaterAdapter.d.ts.map +1 -1
- package/build/desktop/updaterAdapter.js +13 -1
- package/build/desktop/updaterAdapter.js.map +1 -1
- package/build/renderer/assets/{ActiveSessionPermissionChip-Dl2UOFgh.js → ActiveSessionPermissionChip-DImsuR9T.js} +1 -1
- package/build/renderer/assets/{App-CPqGDXVi.js → App-BfOvMP2m.js} +1 -1
- package/build/renderer/assets/{App-ChvP0G9X.js → App-DKOSn0o_.js} +1 -1
- package/build/renderer/assets/{App-C57f4p8k.js → App-DWd7I3Z2.js} +1 -1
- package/build/renderer/assets/{WorkspaceAppRoutes-DYg2vnjz.js → WorkspaceAppRoutes-CrbTA9En.js} +1 -1
- package/build/renderer/assets/app-BTww3Hl4.js +43 -0
- package/build/renderer/assets/{app-XnXwkcD2.css → app-CPxWQwLA.css} +1 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +6 -0
- package/build/renderer/assets/{useDraftSessionChips-By3XXabI.js → useDraftSessionChips-DCIId0eY.js} +1 -1
- package/build/renderer/index.html +2 -2
- package/build/server/app/renderer/auth/api.d.ts +28 -2
- package/build/server/app/renderer/auth/api.d.ts.map +1 -1
- package/build/server/app/renderer/auth/api.js +29 -4
- package/build/server/app/renderer/auth/api.js.map +1 -1
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +11 -4
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -1
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +25 -5
- package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -1
- package/build/server/app/server/authGatePolicy.js +1 -2
- package/build/server/app/server/authGatePolicy.js.map +1 -1
- package/build/server/app/server/authRoutes.d.ts +14 -1
- package/build/server/app/server/authRoutes.d.ts.map +1 -1
- package/build/server/app/server/authRoutes.js +395 -76
- package/build/server/app/server/authRoutes.js.map +1 -1
- package/build/server/app/server/contracts.d.ts +4 -1
- package/build/server/app/server/contracts.d.ts.map +1 -1
- package/build/server/app/server/dependencies.d.ts.map +1 -1
- package/build/server/app/server/dependencies.js +6 -1
- package/build/server/app/server/dependencies.js.map +1 -1
- package/build/server/app/server/platformSetupRoutes.d.ts +2 -1
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +129 -64
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +3 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.js +12 -17
- package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
- package/build/server/config.d.ts +1 -3
- package/build/server/config.d.ts.map +1 -1
- package/build/server/config.js +2 -13
- package/build/server/config.js.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.js +4 -1
- package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.js +3 -1
- package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
- package/build/server/platform/auth/actionGrant.d.ts +61 -0
- package/build/server/platform/auth/actionGrant.d.ts.map +1 -0
- package/build/server/platform/auth/actionGrant.js +108 -0
- package/build/server/platform/auth/actionGrant.js.map +1 -0
- package/build/server/platform/auth/adminCredentials.d.ts +37 -0
- package/build/server/platform/auth/adminCredentials.d.ts.map +1 -0
- package/build/server/platform/auth/adminCredentials.js +63 -0
- package/build/server/platform/auth/adminCredentials.js.map +1 -0
- package/build/server/platform/auth/bootstrap.d.ts +14 -0
- package/build/server/platform/auth/bootstrap.d.ts.map +1 -1
- package/build/server/platform/auth/bootstrap.js +29 -4
- package/build/server/platform/auth/bootstrap.js.map +1 -1
- package/build/server/platform/auth/config.d.ts.map +1 -1
- package/build/server/platform/auth/config.js +1 -1
- package/build/server/platform/auth/config.js.map +1 -1
- package/build/server/platform/auth/errorCodes.d.ts +2 -0
- package/build/server/platform/auth/errorCodes.d.ts.map +1 -1
- package/build/server/platform/auth/errorCodes.js +2 -0
- package/build/server/platform/auth/errorCodes.js.map +1 -1
- package/build/server/platform/auth/googleAccount.d.ts +40 -13
- package/build/server/platform/auth/googleAccount.d.ts.map +1 -1
- package/build/server/platform/auth/googleAccount.js +89 -70
- package/build/server/platform/auth/googleAccount.js.map +1 -1
- package/build/server/platform/auth/index.d.ts +4 -0
- package/build/server/platform/auth/index.d.ts.map +1 -1
- package/build/server/platform/auth/index.js +4 -0
- package/build/server/platform/auth/index.js.map +1 -1
- package/build/server/platform/auth/localLogin.d.ts +10 -0
- package/build/server/platform/auth/localLogin.d.ts.map +1 -1
- package/build/server/platform/auth/localLogin.js +17 -0
- package/build/server/platform/auth/localLogin.js.map +1 -1
- package/build/server/platform/auth/loginMethods.d.ts +18 -0
- package/build/server/platform/auth/loginMethods.d.ts.map +1 -0
- package/build/server/platform/auth/loginMethods.js +19 -0
- package/build/server/platform/auth/loginMethods.js.map +1 -0
- package/build/server/platform/auth/securityEvents.d.ts +31 -0
- package/build/server/platform/auth/securityEvents.d.ts.map +1 -0
- package/build/server/platform/auth/securityEvents.js +45 -0
- package/build/server/platform/auth/securityEvents.js.map +1 -0
- package/build/server/products/chat/api/contracts.d.ts +0 -8
- package/build/server/products/chat/api/contracts.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.js +2 -84
- package/build/server/products/chat/api/setupRoutes.js.map +1 -1
- package/build/server/products/shared/api/workspaceContracts.d.ts +0 -8
- package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
- package/build/server/runtime/client.d.ts +11 -0
- package/build/server/runtime/client.d.ts.map +1 -1
- package/build/server/runtime/client.js +23 -1
- package/build/server/runtime/client.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +40 -0
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +39 -0
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +39 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +39 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +39 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/providerCatalog.d.ts +3 -2
- package/build/server/shared/providerCatalog.d.ts.map +1 -1
- package/build/server/shared/providerCatalog.js +9 -1
- package/build/server/shared/providerCatalog.js.map +1 -1
- package/build/server/shared/providerCatalogData.d.ts +11 -1
- package/build/server/shared/providerCatalogData.d.ts.map +1 -1
- package/build/server/shared/providerCatalogData.js +9 -0
- package/build/server/shared/providerCatalogData.js.map +1 -1
- package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
- package/build/server/shared/providerCatalogInstances.js +3 -0
- package/build/server/shared/providerCatalogInstances.js.map +1 -1
- package/package.json +1 -1
- package/scripts/README.md +30 -0
- package/scripts/linux/node-cli-common.sh +2 -75
- package/scripts/macos/node-cli-common.sh +2 -75
- package/scripts/windows/Check-WindowsSetupReadiness.ps1 +14 -443
- package/scripts/windows/Remove-MergedBranches.ps1 +229 -0
- package/build/renderer/assets/app-DVN9Ghrk.js +0 -43
- package/build/renderer/assets/conversationSidebarRecentEntries-XZVCnMLw.js +0 -6
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
Remove local branches whose upstream was deleted after a squash merge.
|
|
4
|
+
|
|
5
|
+
.DESCRIPTION
|
|
6
|
+
Intended as the opening step of an agent session in a repository that is
|
|
7
|
+
shared by several agents working from one clone.
|
|
8
|
+
|
|
9
|
+
The project merges with `gh pr merge --auto --squash` and lets GitHub delete
|
|
10
|
+
the head branch. A squashed commit has a different SHA than the branch it
|
|
11
|
+
came from, so `git branch -d` always reports "not fully merged" and refuses.
|
|
12
|
+
This script therefore uses upstream state, not commit reachability: a branch
|
|
13
|
+
counts as merged when it had an upstream and that upstream is gone, which
|
|
14
|
+
for this project only happens after the pull request landed.
|
|
15
|
+
|
|
16
|
+
A branch that was never pushed has no upstream at all and can never be
|
|
17
|
+
reported as gone, so local-only experiments are never swept. Branches that
|
|
18
|
+
are checked out in another worktree are reported and skipped rather than
|
|
19
|
+
left to fail.
|
|
20
|
+
|
|
21
|
+
The working tree must be clean. In a shared clone a dirty tree usually means
|
|
22
|
+
another agent left work behind, so the script stops instead of guessing.
|
|
23
|
+
|
|
24
|
+
The default branch comes from origin/HEAD, falling back to init.defaultBranch,
|
|
25
|
+
main, or master, and only ever to a branch that actually exists - guessing a
|
|
26
|
+
name breaks a clone whose default is not what this script assumed. A fetch
|
|
27
|
+
that fails because the remote is unreachable only warns, since the recorded
|
|
28
|
+
upstream state stays accurate and an offline run can at worst miss a recently
|
|
29
|
+
merged branch.
|
|
30
|
+
|
|
31
|
+
.PARAMETER ReturnToDefault
|
|
32
|
+
Switch to the default branch and fast-forward it after sweeping. The switch
|
|
33
|
+
happens regardless when the current branch is one of the deleted ones,
|
|
34
|
+
because a checked-out branch cannot be removed.
|
|
35
|
+
|
|
36
|
+
.PARAMETER SkipFetch
|
|
37
|
+
Skip `git fetch --prune`. Only useful when a fetch just ran, since without a
|
|
38
|
+
prune the deleted upstreams are not yet visible as gone.
|
|
39
|
+
|
|
40
|
+
.PARAMETER RepositoryRoot
|
|
41
|
+
Override the repository to operate on. Intended for isolated validation.
|
|
42
|
+
|
|
43
|
+
.EXAMPLE
|
|
44
|
+
.\Remove-MergedBranches.ps1 -WhatIf
|
|
45
|
+
Show which branches would be removed without changing anything.
|
|
46
|
+
|
|
47
|
+
.EXAMPLE
|
|
48
|
+
.\Remove-MergedBranches.ps1 -ReturnToDefault
|
|
49
|
+
Sweep merged branches, then land on an up-to-date default branch.
|
|
50
|
+
#>
|
|
51
|
+
[CmdletBinding(SupportsShouldProcess)]
|
|
52
|
+
param(
|
|
53
|
+
[Parameter(Mandatory = $false)]
|
|
54
|
+
[switch]$ReturnToDefault,
|
|
55
|
+
|
|
56
|
+
[Parameter(Mandatory = $false)]
|
|
57
|
+
[switch]$SkipFetch,
|
|
58
|
+
|
|
59
|
+
[Parameter(Mandatory = $false)]
|
|
60
|
+
[string]$RepositoryRoot
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
$ErrorActionPreference = "Stop"
|
|
64
|
+
|
|
65
|
+
function Invoke-Git {
|
|
66
|
+
param([string[]]$Arguments, [switch]$AllowFailure)
|
|
67
|
+
|
|
68
|
+
$output = & git -C $script:RepoRoot @Arguments 2>&1
|
|
69
|
+
if ($LASTEXITCODE -ne 0 -and -not $AllowFailure) {
|
|
70
|
+
throw "git $($Arguments -join ' ') failed with exit code $LASTEXITCODE`n$output"
|
|
71
|
+
}
|
|
72
|
+
return $output
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function Test-LocalBranch {
|
|
76
|
+
param([string]$Name)
|
|
77
|
+
|
|
78
|
+
if (-not $Name) { return $false }
|
|
79
|
+
Invoke-Git @("show-ref", "--verify", "--quiet", "refs/heads/$Name") -AllowFailure | Out-Null
|
|
80
|
+
return ($LASTEXITCODE -eq 0)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function Get-RemoteDefaultBranch {
|
|
84
|
+
$ref = Invoke-Git @("symbolic-ref", "--quiet", "refs/remotes/origin/HEAD") -AllowFailure
|
|
85
|
+
if ($LASTEXITCODE -eq 0 -and $ref) {
|
|
86
|
+
return ($ref | Select-Object -First 1).ToString().Trim() -replace '^refs/remotes/origin/', ''
|
|
87
|
+
}
|
|
88
|
+
return $null
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function Resolve-DefaultBranch {
|
|
92
|
+
# origin/HEAD records what the remote considers default. Prefer it, and try
|
|
93
|
+
# once to populate it when the clone never recorded one.
|
|
94
|
+
$name = Get-RemoteDefaultBranch
|
|
95
|
+
if ($name) { return $name }
|
|
96
|
+
|
|
97
|
+
Invoke-Git @("remote", "set-head", "origin", "--auto") -AllowFailure | Out-Null
|
|
98
|
+
$name = Get-RemoteDefaultBranch
|
|
99
|
+
if ($name) { return $name }
|
|
100
|
+
|
|
101
|
+
# No remote, or one that has never been reachable. Guessing a name here is
|
|
102
|
+
# how a fresh clone breaks, because init.defaultBranch varies by machine.
|
|
103
|
+
# Only return a branch that actually exists.
|
|
104
|
+
$configured = Invoke-Git @("config", "--get", "init.defaultBranch") -AllowFailure
|
|
105
|
+
$configuredName = if ($LASTEXITCODE -eq 0 -and $configured) {
|
|
106
|
+
($configured | Select-Object -First 1).ToString().Trim()
|
|
107
|
+
} else {
|
|
108
|
+
$null
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
foreach ($candidate in @($configuredName, "main", "master")) {
|
|
112
|
+
if (Test-LocalBranch $candidate) { return $candidate }
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return $null
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
# Resolve the repository first so every later call is explicitly scoped to it.
|
|
119
|
+
$startDir = if ($RepositoryRoot) { $RepositoryRoot } else { (Get-Location).Path }
|
|
120
|
+
$script:RepoRoot = & git -C $startDir rev-parse --show-toplevel 2>$null
|
|
121
|
+
if ($LASTEXITCODE -ne 0 -or -not $script:RepoRoot) {
|
|
122
|
+
throw "Not a git repository: $startDir"
|
|
123
|
+
}
|
|
124
|
+
$script:RepoRoot = $script:RepoRoot.Trim()
|
|
125
|
+
|
|
126
|
+
# A dirty tree in a shared clone is somebody else's unfinished work.
|
|
127
|
+
$dirty = Invoke-Git @("status", "--porcelain")
|
|
128
|
+
if ($dirty) {
|
|
129
|
+
$count = @($dirty).Count
|
|
130
|
+
throw "Working tree is not clean ($count entries). Resolve or stash that work before sweeping branches."
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
# Stale worktree registrations keep their branches undeletable, so clear them
|
|
134
|
+
# before deciding what can go.
|
|
135
|
+
Invoke-Git @("worktree", "prune") | Out-Null
|
|
136
|
+
|
|
137
|
+
# A failed fetch is not fatal. `gone` is recorded by an earlier successful prune
|
|
138
|
+
# and stays accurate, so the worst an offline run can do is miss a branch that
|
|
139
|
+
# was merged since the last fetch - it can never delete the wrong one.
|
|
140
|
+
if (-not $SkipFetch) {
|
|
141
|
+
Invoke-Git @("fetch", "--prune") -AllowFailure | Out-Null
|
|
142
|
+
if ($LASTEXITCODE -ne 0) {
|
|
143
|
+
Write-Warning "git fetch --prune failed; sweeping on the upstream state already recorded. Branches merged since the last successful fetch will not be detected yet."
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
$defaultBranch = Resolve-DefaultBranch
|
|
148
|
+
|
|
149
|
+
$currentBranch = (Invoke-Git @("branch", "--show-current") | Select-Object -First 1)
|
|
150
|
+
if ($currentBranch) { $currentBranch = $currentBranch.ToString().Trim() }
|
|
151
|
+
|
|
152
|
+
# Branches held by another worktree cannot be deleted; git blocks it for us, but
|
|
153
|
+
# reporting them is more useful than surfacing a raw error.
|
|
154
|
+
$worktreeBranches = @{}
|
|
155
|
+
foreach ($line in @(Invoke-Git @("worktree", "list", "--porcelain"))) {
|
|
156
|
+
$text = $line.ToString()
|
|
157
|
+
if ($text -match '^branch\s+refs/heads/(.+)$') {
|
|
158
|
+
$name = $Matches[1]
|
|
159
|
+
if ($name -ne $currentBranch) { $worktreeBranches[$name] = $true }
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
$gone = @()
|
|
164
|
+
foreach ($line in @(Invoke-Git @("for-each-ref", "--format=%(refname:short)%09%(upstream:track,nobracket)", "refs/heads"))) {
|
|
165
|
+
$parts = $line.ToString().Split("`t")
|
|
166
|
+
if ($parts.Count -ge 2 -and $parts[1].Trim() -eq "gone") {
|
|
167
|
+
$gone += $parts[0].Trim()
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
# The default branch tracks a live upstream and should never reach this list,
|
|
172
|
+
# but never delete the branch everything else falls back to.
|
|
173
|
+
$gone = @($gone | Where-Object { $_ -ne $defaultBranch })
|
|
174
|
+
|
|
175
|
+
$blocked = @($gone | Where-Object { $worktreeBranches.ContainsKey($_) })
|
|
176
|
+
$deletable = @($gone | Where-Object { -not $worktreeBranches.ContainsKey($_) })
|
|
177
|
+
|
|
178
|
+
foreach ($name in $blocked) {
|
|
179
|
+
Write-Host " skip $name (checked out in another worktree)"
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if ($deletable.Count -eq 0) {
|
|
183
|
+
Write-Host "No merged branches to remove."
|
|
184
|
+
} else {
|
|
185
|
+
# A checked-out branch cannot be deleted, so step off it first.
|
|
186
|
+
if ($currentBranch -and $deletable -contains $currentBranch) {
|
|
187
|
+
if (-not $defaultBranch) {
|
|
188
|
+
Write-Host " skip $currentBranch (checked out, and no default branch to switch to)"
|
|
189
|
+
$deletable = @($deletable | Where-Object { $_ -ne $currentBranch })
|
|
190
|
+
} elseif ($PSCmdlet.ShouldProcess($defaultBranch, "Switch away from '$currentBranch' before deleting it")) {
|
|
191
|
+
Invoke-Git @("switch", $defaultBranch) | Out-Null
|
|
192
|
+
Write-Host " switch $defaultBranch (left '$currentBranch' so it can be removed)"
|
|
193
|
+
$currentBranch = $defaultBranch
|
|
194
|
+
} elseif (-not $WhatIfPreference) {
|
|
195
|
+
# Declined under -Confirm: the branch cannot be deleted while it is
|
|
196
|
+
# still checked out, so drop it. -WhatIf also lands here because
|
|
197
|
+
# ShouldProcess reports false, but there the intent is a preview, so
|
|
198
|
+
# keep the branch listed and let the delete below be previewed too.
|
|
199
|
+
$deletable = @($deletable | Where-Object { $_ -ne $currentBranch })
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
foreach ($name in $deletable) {
|
|
204
|
+
# -D, not -d: a squashed branch is never reachable from the default
|
|
205
|
+
# branch, so -d refuses every time. `gone` is the merge evidence here.
|
|
206
|
+
if ($PSCmdlet.ShouldProcess($name, "Delete merged local branch")) {
|
|
207
|
+
$sha = (Invoke-Git @("rev-parse", "--short", $name) | Select-Object -First 1).ToString().Trim()
|
|
208
|
+
Invoke-Git @("branch", "-D", $name) | Out-Null
|
|
209
|
+
Write-Host " delete $name (was $sha)"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if ($ReturnToDefault) {
|
|
215
|
+
if (-not $defaultBranch) {
|
|
216
|
+
Write-Warning "No default branch could be determined, so -ReturnToDefault did nothing."
|
|
217
|
+
} elseif ($currentBranch -ne $defaultBranch) {
|
|
218
|
+
if ($PSCmdlet.ShouldProcess($defaultBranch, "Switch and fast-forward")) {
|
|
219
|
+
Invoke-Git @("switch", $defaultBranch) | Out-Null
|
|
220
|
+
Invoke-Git @("pull", "--ff-only") -AllowFailure | Out-Null
|
|
221
|
+
Write-Host " switch $defaultBranch (fast-forwarded)"
|
|
222
|
+
}
|
|
223
|
+
} else {
|
|
224
|
+
if ($PSCmdlet.ShouldProcess($defaultBranch, "Fast-forward")) {
|
|
225
|
+
Invoke-Git @("pull", "--ff-only") -AllowFailure | Out-Null
|
|
226
|
+
Write-Host " pull $defaultBranch (fast-forwarded)"
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|