guito 0.4.0 → 0.5.1
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 +69 -0
- package/CONTRIBUTION.md +138 -0
- package/LICENSE +21 -21
- package/README.md +82 -82
- package/bin/guito-server.js +727 -0
- package/bin/index.js +26 -719
- package/bin/ui/browser/favicon.svg +9 -9
- package/bin/ui/browser/index.html +13 -13
- package/bin/ui/browser/main-24WBYIHU.js +5 -0
- package/package.json +77 -69
- package/bin/ui/browser/main-2DRQNM37.js +0 -5
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Guito are documented in this file. The project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and this changelog is structured around [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
4
|
+
|
|
5
|
+
## [0.5.1] - 2026-08-31
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added a marketplace icon for the Visual Studio Code extension.
|
|
10
|
+
|
|
11
|
+
## [0.5.0] - 2026-08-31
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added a VS Code extension with a status-bar action, Command Palette command, repository picker, and reusable editor webviews.
|
|
16
|
+
- Added support for local and remote VS Code workspaces, including Remote SSH, Dev Containers, and GitHub Codespaces.
|
|
17
|
+
- Added authenticated per-repository server sessions for VS Code webviews.
|
|
18
|
+
- Added server integration tests and release-version verification.
|
|
19
|
+
- Added automated npm and Visual Studio Marketplace publishing for stable GitHub releases.
|
|
20
|
+
- Added a project-wide contribution guide and changelog.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Split the reusable Fastify server from the CLI entry point so the browser client and VS Code extension share the same backend.
|
|
25
|
+
- Added the VS Code extension as an npm workspace and integrated it into the project build.
|
|
26
|
+
- Updated the Fastify server dependencies and Monaco editor.
|
|
27
|
+
|
|
28
|
+
## [0.4.0] - 2026-08-20
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Added branch filtering, remote-branch visibility controls, and commit search.
|
|
33
|
+
- Added a visual commit graph with branch and tag badges.
|
|
34
|
+
- Added working-tree status to the history view.
|
|
35
|
+
- Added commit and working-tree diff views with Monaco-powered inline and side-by-side layouts.
|
|
36
|
+
- Added context menus for commit, branch, remote, archive, stash, reset, and cleanup actions.
|
|
37
|
+
- Added toolbar actions for fetch, pull, pull with rebase, push, sync, and refresh.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- Rebuilt the frontend with Angular.
|
|
42
|
+
- Expanded the local Git API and refreshed the application layout and interactions.
|
|
43
|
+
|
|
44
|
+
## [0.3.0] - 2026-01-05
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- Added core Git workflows for commits, staging, branches, stashes, tags, merges, rebases, and remotes.
|
|
49
|
+
- Added the first commit diff viewer with Monaco editor support.
|
|
50
|
+
- Added the initial commit graph visualization.
|
|
51
|
+
|
|
52
|
+
## [0.2.1] - 2025-05-23
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
|
|
56
|
+
- Renamed the project and npm command from `easy-git-explorer` to `guito`.
|
|
57
|
+
|
|
58
|
+
## [0.2.0] - 2024-06-26
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
|
|
62
|
+
- Added the first repository header and commit table.
|
|
63
|
+
- Added initial npm usage documentation for the browser client.
|
|
64
|
+
|
|
65
|
+
## [0.1.0] - 2024-06-20
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
|
|
69
|
+
- Added the first browser-based Git explorer MVP.
|
package/CONTRIBUTION.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Contributing to Guito
|
|
2
|
+
|
|
3
|
+
Thanks for helping improve Guito. Contributions to the Angular client, Fastify server, CLI, VS Code extension, tests, and documentation are welcome.
|
|
4
|
+
|
|
5
|
+
## Before you start
|
|
6
|
+
|
|
7
|
+
- Search the [existing issues](https://github.com/danisss9/Guito/issues) before starting work.
|
|
8
|
+
- Discuss a large feature, behavior change, or architectural rewrite with the maintainer first. Use an issue when issue creation is available; otherwise, open a draft pull request with the proposal.
|
|
9
|
+
- Keep pull requests focused. Unrelated fixes are easier to review as separate changes.
|
|
10
|
+
- Never include repository credentials, tokens, personal paths, or sensitive Git data in code, tests, screenshots, or logs.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- Git
|
|
15
|
+
- Node.js 24 and npm (Node.js 24 matches the release workflow)
|
|
16
|
+
- Visual Studio Code 1.96 or newer when developing the extension
|
|
17
|
+
|
|
18
|
+
The Angular toolchain also supports the Node.js versions declared by `@angular/build`, but using Node.js 24 gives contributors the closest match to CI.
|
|
19
|
+
|
|
20
|
+
## Set up the project
|
|
21
|
+
|
|
22
|
+
Fork and clone the repository, then install the locked dependencies from the project root:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
git clone https://github.com/<your-user>/Guito.git
|
|
26
|
+
cd Guito
|
|
27
|
+
npm ci
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Create a focused branch for your change:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
git switch -c feature/short-description
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Run the browser client locally
|
|
37
|
+
|
|
38
|
+
The API server and Angular development server run as separate processes. Start each command in its own terminal from the project root:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
npm run dev:server
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
npm run dev
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Open `http://localhost:4200`. The Angular development server proxies `/api` requests to the API server on port `8080`.
|
|
49
|
+
|
|
50
|
+
`npm run dev:server` compiles the server once before starting it. Restart that process after changing server code.
|
|
51
|
+
|
|
52
|
+
To build and run the packaged application instead:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
npm run build
|
|
56
|
+
npm start
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Develop the VS Code extension
|
|
60
|
+
|
|
61
|
+
Build the extension and its bundled UI:
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
npm run build:extension
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Open the repository in Visual Studio Code and launch the **Run Guito Extension** debug configuration. Its pre-launch task rebuilds the extension. In the Extension Development Host, open a trusted Git workspace and run **Guito: Open Guito**.
|
|
68
|
+
|
|
69
|
+
To create a local VSIX package:
|
|
70
|
+
|
|
71
|
+
```sh
|
|
72
|
+
npm run package:extension
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The package is written to `vscode-extension/guito.vsix` and is ignored by Git.
|
|
76
|
+
|
|
77
|
+
## Project structure
|
|
78
|
+
|
|
79
|
+
| Path | Purpose |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `src/` | Angular application, components, models, utilities, and API client. |
|
|
82
|
+
| `server/` | Fastify API, Git integration, and CLI server entry point. |
|
|
83
|
+
| `vscode-extension/` | VS Code extension manifest, source, build script, and extension-specific docs. |
|
|
84
|
+
| `tests/` | Node integration tests for the local server. |
|
|
85
|
+
| `scripts/` | Release verification utilities. |
|
|
86
|
+
| `bin/` | Compiled server and UI assets shipped in the npm package. |
|
|
87
|
+
| `.github/workflows/` | Release automation. |
|
|
88
|
+
|
|
89
|
+
Treat `bin/`, `vscode-extension/dist/`, and packaged `.vsix` files as generated output. Make source changes under `src/`, `server/`, or `vscode-extension/src/`; do not edit generated bundles by hand. Regenerate build output with the npm scripts when it needs to be included or inspected.
|
|
90
|
+
|
|
91
|
+
## Validate your change
|
|
92
|
+
|
|
93
|
+
Run the same core checks used by the release workflow:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
npm run check
|
|
97
|
+
npm run build
|
|
98
|
+
npm test
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
- Add or update tests when changing server routes, authentication, repository selection, or Git behavior.
|
|
102
|
+
- Test UI changes against a disposable repository with branches, merges, remote references, working-tree changes, and untracked files where relevant.
|
|
103
|
+
- Exercise destructive operations only in a disposable repository.
|
|
104
|
+
- Verify extension changes in an Extension Development Host. If remote behavior changes, also test an appropriate remote workspace when possible.
|
|
105
|
+
|
|
106
|
+
## Code and documentation guidelines
|
|
107
|
+
|
|
108
|
+
- Follow the existing TypeScript and Angular patterns in the surrounding files.
|
|
109
|
+
- Keep server operations scoped to the selected repository and validate any user-controlled paths or refs.
|
|
110
|
+
- Return useful API errors without exposing secrets or unrelated filesystem data.
|
|
111
|
+
- Preserve the confirmation flow for destructive Git operations.
|
|
112
|
+
- Update `README.md` or extension documentation when user-facing behavior changes.
|
|
113
|
+
- Add user-visible changes to the `Unreleased` section of `CHANGELOG.md`.
|
|
114
|
+
|
|
115
|
+
## Submit a pull request
|
|
116
|
+
|
|
117
|
+
Before submitting:
|
|
118
|
+
|
|
119
|
+
1. Rebase or merge the latest `main` branch into your branch and resolve conflicts.
|
|
120
|
+
2. Run the validation commands above.
|
|
121
|
+
3. Review the diff for generated noise, secrets, debug logging, and unrelated edits.
|
|
122
|
+
4. Explain what changed, why it changed, how it was tested, and any remaining limitations in the pull-request description.
|
|
123
|
+
5. Link the relevant issue when one exists.
|
|
124
|
+
|
|
125
|
+
Review feedback is part of the contribution process. Keep follow-up commits focused, and avoid force-pushing after review has started unless rebasing is necessary.
|
|
126
|
+
|
|
127
|
+
## Releases
|
|
128
|
+
|
|
129
|
+
Releases are maintained by the project owner. Pushing a stable `vX.Y.Z` Git tag triggers the release workflow, which verifies the root package and extension versions before building, testing, and publishing both packages. After both publishes succeed, the workflow creates the corresponding GitHub Release with generated release notes. npm uses trusted publishing, while the VS Code Marketplace publish reads the `VSCE_PAT` repository secret.
|
|
130
|
+
|
|
131
|
+
Release preparation should update:
|
|
132
|
+
|
|
133
|
+
- `package.json`
|
|
134
|
+
- `package-lock.json`
|
|
135
|
+
- `vscode-extension/package.json`
|
|
136
|
+
- `CHANGELOG.md`
|
|
137
|
+
|
|
138
|
+
Do not publish the npm package or VS Code extension from a contribution branch.
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 danisss9
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
# Guito
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
|
|
1
|
+
# Guito
|
|
2
|
+
|
|
3
|
+
Explore and manage Git repositories in a focused visual client. Guito runs locally in your browser or directly inside Visual Studio Code.
|
|
4
|
+
|
|
5
|
+
The name combines **GUI** and **Git**: **G**u**IT**o. It is also a [Portuguese word for money](https://dicionario.priberam.org/guito).
|
|
6
|
+
|
|
7
|
+
[npm package](https://www.npmjs.com/package/guito) · [VS Code extension](https://marketplace.visualstudio.com/items?itemName=danisss9.guito) · [Issue tracker](https://github.com/danisss9/Guito/issues)
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- Visual commit graph with branch and tag references.
|
|
12
|
+
- Commit search by subject, author, or hash.
|
|
13
|
+
- Local and remote branch filtering.
|
|
14
|
+
- Commit and working-tree diffs powered by the Monaco editor, with inline and side-by-side layouts.
|
|
15
|
+
- Fetch, pull, pull with rebase, push, and sync actions.
|
|
16
|
+
- Context actions for creating branches and tags, checking out commits, cherry-picking, reverting, merging, rebasing, resetting, and exporting archives.
|
|
17
|
+
- Working-tree actions for stashing changes, resetting tracked changes, and cleaning untracked files.
|
|
18
|
+
- Browser-based CLI and a VS Code extension with local, Remote SSH, Dev Container, and Codespaces support.
|
|
19
|
+
|
|
20
|
+
> [!CAUTION]
|
|
21
|
+
> Guito can run destructive Git operations, including hard resets, commit drops, forceful cleanup, and history changes. Review confirmation dialogs carefully and make sure important work is committed or backed up.
|
|
22
|
+
|
|
23
|
+
## Quick start
|
|
24
|
+
|
|
25
|
+
### Browser client
|
|
26
|
+
|
|
27
|
+
You need Git, Node.js 20 or newer, and npm. From inside the repository you want to inspect, run:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
npx guito
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Guito starts a local server at `http://localhost:8080` and opens it in your default browser.
|
|
34
|
+
|
|
35
|
+
To install the command globally instead:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npm install --global guito
|
|
39
|
+
guito
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Visual Studio Code
|
|
43
|
+
|
|
44
|
+
After installing the extension, open a trusted workspace containing a Git repository, then either:
|
|
45
|
+
|
|
46
|
+
- select **Guito** in the status bar; or
|
|
47
|
+
- run **Guito: Open Guito** from the Command Palette.
|
|
48
|
+
|
|
49
|
+
In a multi-root workspace, Guito asks which repository to open. Git must be available on the local or remote VS Code extension host.
|
|
50
|
+
|
|
51
|
+
## CLI options
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
guito [--port <number>] [--no-open]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
| Option | Description |
|
|
58
|
+
| ----------------- | ----------------------------------------------------------------------------------------------------- |
|
|
59
|
+
| `--port <number>` | Port used by the local server. Defaults to `8080`; use `0` to select an available port automatically. |
|
|
60
|
+
| `--no-open` | Start the server without opening a browser. |
|
|
61
|
+
|
|
62
|
+
Run the command from anywhere inside the Git worktree you want Guito to manage. Press `Ctrl+C` in the terminal to stop the server.
|
|
63
|
+
|
|
64
|
+
## Using Guito
|
|
65
|
+
|
|
66
|
+
- Select a commit to inspect its changed files, then select a file to open its diff.
|
|
67
|
+
- Select **Uncommitted changes** to inspect the working tree.
|
|
68
|
+
- Use the branch selector and remote-branch toggle to narrow the graph.
|
|
69
|
+
- Right-click a commit, reference badge, or the working-tree row to open its available Git actions.
|
|
70
|
+
- Use the toolbar for remote operations and manual refreshes.
|
|
71
|
+
|
|
72
|
+
The standalone server can execute Git commands against the current repository. Keep it on a trusted machine and do not expose its port to untrusted networks.
|
|
73
|
+
|
|
74
|
+
## Development and contributing
|
|
75
|
+
|
|
76
|
+
See [CONTRIBUTION.md](CONTRIBUTION.md) for local setup, development commands, project structure, testing, and pull-request guidance.
|
|
77
|
+
|
|
78
|
+
Release history is maintained in [CHANGELOG.md](CHANGELOG.md).
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
Guito is available under the [MIT License](LICENSE).
|