gh-manager-cli 1.4.1 → 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 +14 -0
- package/README.md +31 -12
- package/dist/index.js +8 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
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
|
+
|
|
8
|
+
## [1.4.2](https://github.com/wiiiimm/gh-manager-cli/compare/v1.4.1...v1.4.2) (2025-08-31)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* add packages permission and improve GitHub Packages publishing with jq ([2346944](https://github.com/wiiiimm/gh-manager-cli/commit/2346944739f70d237240c6d67ae39c32d1d623d5))
|
|
14
|
+
|
|
1
15
|
## [1.4.1](https://github.com/wiiiimm/gh-manager-cli/compare/v1.4.0...v1.4.1) (2025-08-31)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -2,11 +2,32 @@
|
|
|
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
|
|
8
|
-
# Run with npx (no
|
|
9
|
-
npx gh-manager
|
|
29
|
+
# Run with npx (no install)
|
|
30
|
+
npx gh-manager
|
|
10
31
|
```
|
|
11
32
|
|
|
12
33
|
On first run, you'll be prompted for a GitHub Personal Access Token.
|
|
@@ -20,13 +41,14 @@ On first run, you'll be prompted for a GitHub Personal Access Token.
|
|
|
20
41
|
- **Real-time Sorting**: Server-side sorting by updated, pushed, name, or stars (with direction toggle)
|
|
21
42
|
- **Smart Filtering**: Client-side search through repository names and descriptions
|
|
22
43
|
- **Repository Actions**:
|
|
23
|
-
- Open in browser (Enter/`
|
|
24
|
-
- Delete repository (`Del
|
|
25
|
-
- Archive/unarchive repositories (`
|
|
44
|
+
- Open in browser (Enter/`O`)
|
|
45
|
+
- Delete repository (`Del` or `Ctrl+Backspace`) with secure two-step confirmation
|
|
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
|
-
- **Keyboard Navigation**: Full keyboard control (arrow keys, PageUp/Down, `
|
|
29
|
-
- **Display Density**: Toggle between compact/cozy/comfy spacing (`
|
|
50
|
+
- **Keyboard Navigation**: Full keyboard control (arrow keys, PageUp/Down, `Ctrl+G`/`G`)
|
|
51
|
+
- **Display Density**: Toggle between compact/cozy/comfy spacing (`T`)
|
|
30
52
|
- **Visual Indicators**: Fork status, private/archived badges, language colors
|
|
31
53
|
- **Loading States**: Contextual loading screens for sorting and refreshing operations
|
|
32
54
|
- **Rate Limit Monitoring**: Live API usage display with visual warnings
|
|
@@ -45,11 +67,7 @@ On first run, you'll be prompted for a GitHub Personal Access Token.
|
|
|
45
67
|
Run instantly without installing:
|
|
46
68
|
|
|
47
69
|
```bash
|
|
48
|
-
|
|
49
|
-
npx gh-manager-cli
|
|
50
|
-
|
|
51
|
-
# From GitHub (always latest)
|
|
52
|
-
npx github:wiiiimm/gh-manager-cli
|
|
70
|
+
npx gh-manager
|
|
53
71
|
```
|
|
54
72
|
|
|
55
73
|
### NPM Global Install
|
|
@@ -128,6 +146,7 @@ Launch the app, then use the keys below:
|
|
|
128
146
|
- Confirm: press `Y` or Enter
|
|
129
147
|
- Cancel: press `C` or Esc
|
|
130
148
|
- Archive/Unarchive: `Ctrl+A`
|
|
149
|
+
- Sync fork with upstream: `Ctrl+U` (for forks only, shows commit status and handles conflicts)
|
|
131
150
|
- Logout: `Ctrl+L`
|
|
132
151
|
- Toggle fork metrics: `F`
|
|
133
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 {
|