gh-manager-cli 1.10.0 → 1.10.2
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.10.2](https://github.com/wiiiimm/gh-manager-cli/compare/v1.10.1...v1.10.2) (2025-09-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* handle GitHub API 422 status for sync-upstream as potential success ([9a13e8a](https://github.com/wiiiimm/gh-manager-cli/commit/9a13e8a76d4ed09eb7af18b5b8de9e0f2d4c978f))
|
|
7
|
+
|
|
8
|
+
## [1.10.1](https://github.com/wiiiimm/gh-manager-cli/compare/v1.10.0...v1.10.1) (2025-09-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* keep sync and delete modals open on error for better UX ([1823076](https://github.com/wiiiimm/gh-manager-cli/commit/1823076bdd74c2cb50591d9133eabe4a96927cea))
|
|
14
|
+
|
|
1
15
|
# [1.10.0](https://github.com/wiiiimm/gh-manager-cli/compare/v1.9.0...v1.10.0) (2025-09-01)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ On first run, you'll be prompted for a GitHub Personal Access Token.
|
|
|
45
45
|
- Open in browser (Enter/`O`)
|
|
46
46
|
- Delete repository (`Del` or `Ctrl+Backspace`) with secure two-step confirmation
|
|
47
47
|
- Archive/unarchive repositories (`Ctrl+A`) with confirmation prompts
|
|
48
|
-
- Sync forks with upstream (`Ctrl+
|
|
48
|
+
- Sync forks with upstream (`Ctrl+S`) with automatic conflict detection
|
|
49
49
|
|
|
50
50
|
### User Interface & Experience
|
|
51
51
|
- **Keyboard Navigation**: Full keyboard control (arrow keys, PageUp/Down, `Ctrl+G`/`G`)
|
|
@@ -151,7 +151,7 @@ Launch the app, then use the keys below:
|
|
|
151
151
|
- Confirm: press `Y` or Enter
|
|
152
152
|
- Cancel: press `C` or Esc
|
|
153
153
|
- Archive/Unarchive: `Ctrl+A`
|
|
154
|
-
- Sync fork with upstream: `Ctrl+
|
|
154
|
+
- Sync fork with upstream: `Ctrl+S` (for forks only, shows commit status and handles conflicts)
|
|
155
155
|
- Logout: `Ctrl+L`
|
|
156
156
|
- Toggle fork metrics: `F`
|
|
157
157
|
- Quit: `Q`
|
|
@@ -668,6 +668,19 @@ async function syncForkWithUpstream(token, owner, repo, branch = "main") {
|
|
|
668
668
|
const body = await res.json();
|
|
669
669
|
return body;
|
|
670
670
|
}
|
|
671
|
+
if (res.status === 422) {
|
|
672
|
+
try {
|
|
673
|
+
const body = await res.json();
|
|
674
|
+
if (body && body.message && body.message.includes("There was a problem updating the branch")) {
|
|
675
|
+
return {
|
|
676
|
+
message: "Sync completed (with warnings)",
|
|
677
|
+
merge_type: "merge",
|
|
678
|
+
base_branch: branch
|
|
679
|
+
};
|
|
680
|
+
}
|
|
681
|
+
} catch {
|
|
682
|
+
}
|
|
683
|
+
}
|
|
671
684
|
let msg = `Fork sync failed (status ${res.status})`;
|
|
672
685
|
try {
|
|
673
686
|
const body = await res.json();
|
package/dist/index.js
CHANGED
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
updateCacheAfterArchive,
|
|
18
18
|
updateCacheAfterDelete,
|
|
19
19
|
updateCacheWithRepository
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-KOZ6QCTU.js";
|
|
21
21
|
|
|
22
22
|
// package.json
|
|
23
23
|
var require_package = __commonJS({
|
|
24
24
|
"package.json"(exports, module) {
|
|
25
25
|
module.exports = {
|
|
26
26
|
name: "gh-manager-cli",
|
|
27
|
-
version: "1.10.
|
|
27
|
+
version: "1.10.2",
|
|
28
28
|
private: false,
|
|
29
29
|
description: "Interactive CLI to manage your GitHub repos (personal) with Ink",
|
|
30
30
|
license: "MIT",
|
|
@@ -280,7 +280,7 @@ function OrgSwitcher({ token, currentContext, onSelect, onClose }) {
|
|
|
280
280
|
const loadOrgs = async () => {
|
|
281
281
|
try {
|
|
282
282
|
setLoading(true);
|
|
283
|
-
const client = await import("./github-
|
|
283
|
+
const client = await import("./github-HC6GZCKR.js").then((m) => m.makeClient(token));
|
|
284
284
|
const orgs = await fetchViewerOrganizations(client);
|
|
285
285
|
setOrganizations(orgs);
|
|
286
286
|
if (!isPersonalContext) {
|
|
@@ -1051,7 +1051,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
|
|
|
1051
1051
|
}
|
|
1052
1052
|
return;
|
|
1053
1053
|
}
|
|
1054
|
-
if (key.ctrl && (input === "
|
|
1054
|
+
if (key.ctrl && (input === "s" || input === "S")) {
|
|
1055
1055
|
const repo = visibleItems[cursor];
|
|
1056
1056
|
if (repo && repo.isFork && repo.parent) {
|
|
1057
1057
|
const hasCommitData = repo.defaultBranchRef && repo.parent.defaultBranchRef && repo.parent.defaultBranchRef.target?.history && repo.defaultBranchRef.target?.history;
|
|
@@ -1741,7 +1741,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
|
|
|
1741
1741
|
] }) }),
|
|
1742
1742
|
/* @__PURE__ */ jsxs5(Box5, { marginTop: 1, paddingX: 1, flexDirection: "column", children: [
|
|
1743
1743
|
/* @__PURE__ */ jsx6(Box5, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx6(Text6, { color: "gray", dimColor: modalOpen ? true : void 0, children: "\u2191\u2193 Navigate \u2022 Ctrl+G Top \u2022 G Bottom \u2022 / Filter \u2022 W Org Switcher \u2022 S Sort \u2022 D Direction \u2022 T Density \u2022 F Forks \u2022 \u23CE/O Open" }) }),
|
|
1744
|
-
/* @__PURE__ */ jsx6(Box5, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx6(Text6, { color: "gray", dimColor: modalOpen ? true : void 0, children: "Del/Ctrl+Backspace Delete \u2022 Ctrl+A Un/Archive \u2022 Ctrl+
|
|
1744
|
+
/* @__PURE__ */ jsx6(Box5, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx6(Text6, { color: "gray", dimColor: modalOpen ? true : void 0, children: "Del/Ctrl+Backspace Delete \u2022 Ctrl+A Un/Archive \u2022 Ctrl+S Sync Fork \u2022 I Info \u2022 Ctrl+I Cache \u2022 Ctrl+L Logout \u2022 R Refresh \u2022 Q Quit" }) })
|
|
1745
1745
|
] }),
|
|
1746
1746
|
process.env.GH_MANAGER_DEBUG === "1" && /* @__PURE__ */ jsxs5(Box5, { marginTop: 1, borderStyle: "single", borderColor: "yellow", paddingX: 1, flexDirection: "column", children: [
|
|
1747
1747
|
/* @__PURE__ */ jsx6(Text6, { bold: true, color: "yellow", children: "Debug Messages:" }),
|