gh-manager-cli 1.4.2 → 1.5.0
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 +7 -0
- package/README.md +23 -0
- package/dist/index.js +8 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.5.0](https://github.com/wiiiimm/gh-manager-cli/compare/v1.4.2...v1.5.0) (2025-08-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add fork sync functionality and update documentation ([1d37a10](https://github.com/wiiiimm/gh-manager-cli/commit/1d37a10d90636731c436679b0a4ff2d1c3e1daae))
|
|
7
|
+
|
|
1
8
|
## [1.4.2](https://github.com/wiiiimm/gh-manager-cli/compare/v1.4.1...v1.4.2) (2025-08-31)
|
|
2
9
|
|
|
3
10
|
|
package/README.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
Interactive terminal app to browse and manage your personal GitHub repositories. Built with Ink (React for CLIs) and the GitHub GraphQL API.
|
|
4
4
|
|
|
5
|
+
## Screenshots
|
|
6
|
+
|
|
7
|
+
<div align="center">
|
|
8
|
+
|
|
9
|
+
### Repository Listing
|
|
10
|
+
Browse your repositories with rich metadata, sorting, and filtering options.
|
|
11
|
+
|
|
12
|
+
<img src="docs/demo_repo_listing.png" alt="Repository listing interface showing repositories with metadata" width="800">
|
|
13
|
+
|
|
14
|
+
### Authentication Flow
|
|
15
|
+
Secure GitHub token authentication with validation and persistence.
|
|
16
|
+
|
|
17
|
+
<img src="docs/demo_login.png" alt="Login screen prompting for GitHub token" width="800">
|
|
18
|
+
|
|
19
|
+
### Delete Confirmation
|
|
20
|
+
Safe repository deletion with two-step confirmation process.
|
|
21
|
+
|
|
22
|
+
<img src="docs/demo_delete_confirmation.png" alt="Delete confirmation dialog with security prompts" width="800">
|
|
23
|
+
|
|
24
|
+
</div>
|
|
25
|
+
|
|
5
26
|
## Quick Start
|
|
6
27
|
|
|
7
28
|
```bash
|
|
@@ -23,6 +44,7 @@ On first run, you'll be prompted for a GitHub Personal Access Token.
|
|
|
23
44
|
- Open in browser (Enter/`O`)
|
|
24
45
|
- Delete repository (`Del` or `Ctrl+Backspace`) with secure two-step confirmation
|
|
25
46
|
- Archive/unarchive repositories (`Ctrl+A`) with confirmation prompts
|
|
47
|
+
- Sync forks with upstream (`Ctrl+U`) with automatic conflict detection
|
|
26
48
|
|
|
27
49
|
### User Interface & Experience
|
|
28
50
|
- **Keyboard Navigation**: Full keyboard control (arrow keys, PageUp/Down, `Ctrl+G`/`G`)
|
|
@@ -124,6 +146,7 @@ Launch the app, then use the keys below:
|
|
|
124
146
|
- Confirm: press `Y` or Enter
|
|
125
147
|
- Cancel: press `C` or Esc
|
|
126
148
|
- Archive/Unarchive: `Ctrl+A`
|
|
149
|
+
- Sync fork with upstream: `Ctrl+U` (for forks only, shows commit status and handles conflicts)
|
|
127
150
|
- Logout: `Ctrl+L`
|
|
128
151
|
- Toggle fork metrics: `F`
|
|
129
152
|
- Quit: `Q`
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var require_package = __commonJS({
|
|
|
9
9
|
"package.json"(exports, module) {
|
|
10
10
|
module.exports = {
|
|
11
11
|
name: "gh-manager-cli",
|
|
12
|
-
version: "1.
|
|
12
|
+
version: "1.5.0",
|
|
13
13
|
private: false,
|
|
14
14
|
description: "Interactive CLI to manage your GitHub repos (personal) with Ink",
|
|
15
15
|
license: "MIT",
|
|
@@ -252,6 +252,7 @@ async function fetchViewerReposPage(client, first, after, orderBy, includeForkTr
|
|
|
252
252
|
parent {
|
|
253
253
|
nameWithOwner
|
|
254
254
|
defaultBranchRef {
|
|
255
|
+
name
|
|
255
256
|
target {
|
|
256
257
|
... on Commit {
|
|
257
258
|
history(first: 0) {
|
|
@@ -262,6 +263,7 @@ async function fetchViewerReposPage(client, first, after, orderBy, includeForkTr
|
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
265
|
defaultBranchRef {
|
|
266
|
+
name
|
|
265
267
|
target {
|
|
266
268
|
... on Commit {
|
|
267
269
|
history(first: 0) {
|
|
@@ -272,7 +274,9 @@ async function fetchViewerReposPage(client, first, after, orderBy, includeForkTr
|
|
|
272
274
|
}` : `
|
|
273
275
|
parent {
|
|
274
276
|
nameWithOwner
|
|
275
|
-
}
|
|
277
|
+
}
|
|
278
|
+
defaultBranchRef { name }
|
|
279
|
+
`}
|
|
276
280
|
}
|
|
277
281
|
}
|
|
278
282
|
}
|
|
@@ -677,7 +681,8 @@ function RepoList({ token, maxVisibleRows, onLogout }) {
|
|
|
677
681
|
try {
|
|
678
682
|
setSyncing(true);
|
|
679
683
|
const [owner, repo] = syncTarget.nameWithOwner.split("/");
|
|
680
|
-
const
|
|
684
|
+
const branchName = syncTarget.defaultBranchRef?.name || "main";
|
|
685
|
+
const result = await syncForkWithUpstream(token, owner, repo, branchName);
|
|
681
686
|
setItems((prev) => prev.map((r) => {
|
|
682
687
|
if (r.id === syncTarget.id && r.parent && r.defaultBranchRef?.target?.history && r.parent.defaultBranchRef?.target?.history) {
|
|
683
688
|
return {
|