Initial Commit

This commit is contained in:
2025-12-17 10:20:17 +08:00
commit 1c945795bf
11 changed files with 3499 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
out
node_modules
.vscode-test

8
.hintrc Normal file
View File

@@ -0,0 +1,8 @@
{
"extends": [
"development"
],
"hints": {
"typescript-config/consistent-casing": "off"
}
}

16
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
]
}
]
}

5
.vscodeignore Normal file
View File

@@ -0,0 +1,5 @@
.vscode
.vscode-test
src
.gitignore
tsconfig.json

57
README.md Normal file
View File

@@ -0,0 +1,57 @@
# WizGIT for VS Code
![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/your-publisher.wizgit-in-vscode?style=for-the-badge&label=Marketplace)
![License](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)
Your intelligent coding companion for repository management, right inside Visual Studio Code. WizGIT simplifies repository creation and management with seamless API integration.
## Features
* **Repository Creation:** Easily create new repositories on WizGit directly from VS Code using the WizGit API.
* **Secure Authentication:** Safely authenticate using your WizGit Personal Access Token.
* **Progress Tracking:** Visual progress indication during repository creation with detailed status updates.
* **Error Handling:** Comprehensive error reporting for troubleshooting API issues.
## Requirements
* Visual Studio Code v1.74.0 or newer.
* A valid WizGit account with API access.
* Personal Access Token from your WizGit instance.
## Usage
1. Open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`)
2. Run the command: `WizGIT: Create Repository`
3. Follow the prompts to enter:
- Your WizGit API endpoint (e.g., `https://wizgit.com/api/v1`)
- Your Personal Access Token
- Repository name
- Repository description (optional)
The extension will create the repository and notify you of the result.
## Commands
* `WizGIT: Create Repository` - Creates a new repository on your WizGit instance
## Extension Settings
Currently, this extension does not contribute any settings. All configuration is done through the interactive prompts when creating a repository.
## Known Issues
* Network connectivity issues may cause repository creation to fail.
* Please report any bugs or feature requests on our [GitHub Issues](https://github.com/your-repo/wizgit-in-vscode/issues) page.
## Release Notes
### 0.0.1
Initial release of WizGIT.
* Core feature: Create repositories via WizGit API.
* Interactive prompts for API configuration.
* Progress tracking and error handling.
---
**Enjoy streamlined repository management with WizGIT!**

142
package-lock.json generated Normal file
View File

@@ -0,0 +1,142 @@
{
"name": "wizgit-in-vscode",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "wizgit-in-vscode",
"version": "0.0.1",
"dependencies": {
"node-fetch": "^3.3.2"
},
"devDependencies": {
"@types/node": "16.x",
"@types/vscode": "^1.74.0",
"typescript": "^4.9.4"
},
"engines": {
"vscode": "^1.74.0"
}
},
"node_modules/@types/node": {
"version": "16.18.126",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz",
"integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/vscode": {
"version": "1.107.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.107.0.tgz",
"integrity": "sha512-XS8YE1jlyTIowP64+HoN30OlC1H9xqSlq1eoLZUgFEC8oUTO6euYZxti1xRiLSfZocs4qytTzR6xCBYtioQTCg==",
"dev": true,
"license": "MIT"
},
"node_modules/data-uri-to-buffer": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
"integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
"license": "MIT",
"engines": {
"node": ">= 12"
}
},
"node_modules/fetch-blob": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/jimmywarting"
},
{
"type": "paypal",
"url": "https://paypal.me/jimmywarting"
}
],
"license": "MIT",
"dependencies": {
"node-domexception": "^1.0.0",
"web-streams-polyfill": "^3.0.3"
},
"engines": {
"node": "^12.20 || >= 14.13"
}
},
"node_modules/formdata-polyfill": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"license": "MIT",
"dependencies": {
"fetch-blob": "^3.1.2"
},
"engines": {
"node": ">=12.20.0"
}
},
"node_modules/node-domexception": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
"deprecated": "Use your platform's native DOMException instead",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/jimmywarting"
},
{
"type": "github",
"url": "https://paypal.me/jimmywarting"
}
],
"license": "MIT",
"engines": {
"node": ">=10.5.0"
}
},
"node_modules/node-fetch": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
"integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
"license": "MIT",
"dependencies": {
"data-uri-to-buffer": "^4.0.0",
"fetch-blob": "^3.1.4",
"formdata-polyfill": "^4.0.10"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/node-fetch"
}
},
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"node_modules/web-streams-polyfill": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
"integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
"license": "MIT",
"engines": {
"node": ">= 8"
}
}
}
}

202
package.json Normal file
View File

@@ -0,0 +1,202 @@
{
"name": "wizgit-in-vscode",
"displayName": "WizGIT in VS Code",
"description": "A VS Code extension to interact with WizGIT API for repository management.",
"version": "0.0.1",
"engines": {
"vscode": "^1.74.0"
},
"categories": [
"SCM Providers",
"Other"
],
"activationEvents": [
"onStartupFinished",
"workspaceContains:.git"
],
"main": "./out/extension.js",
"contributes": {
"viewsContainers": {
"activitybar": [
{
"id": "wizgit",
"title": "WizGIT",
"icon": {
"light": "./resources/wizgit-logo.svg",
"dark": "./resources/wizgit-logo-dark.svg"
}
}
]
},
"views": {
"wizgit": [
{
"id": "wizgitRepositories",
"name": "Repositories",
"when": "wizgit:enabled"
},
{
"id": "wizgitIssues",
"name": "Issues",
"when": "wizgit:enabled"
},
{
"id": "wizgitPullRequests",
"name": "Pull Requests",
"when": "wizgit:enabled"
}
]
},
"commands": [
{
"command": "wizgit-in-vscode.configure",
"title": "Configure WizGIT",
"category": "WizGIT",
"icon": "$(gear)"
},
{
"command": "wizgit-in-vscode.createRepository",
"title": "Create Repository",
"category": "WizGIT",
"icon": "$(repo-create)"
},
{
"command": "wizgit-in-vscode.createIssue",
"title": "Create Issue",
"category": "WizGIT",
"icon": "$(issues)"
},
{
"command": "wizgit-in-vscode.createPullRequest",
"title": "Create Pull Request",
"category": "WizGIT",
"icon": "$(git-pull-request)"
},
{
"command": "wizgit-in-vscode.clearConfig",
"title": "Clear Configuration",
"category": "WizGIT",
"icon": "$(clear-all)"
},
{
"command": "wizgit-in-vscode.refreshRepositories",
"title": "Refresh",
"category": "WizGIT",
"icon": "$(refresh)"
},
{
"command": "wizgit-in-vscode.cloneRepository",
"title": "Clone Repository",
"category": "WizGIT",
"icon": "$(repo-clone)"
},
{
"command": "wizgit-in-vscode.openIssue",
"title": "Open Issue",
"category": "WizGIT",
"icon": "$(link-external)"
},
{
"command": "wizgit-in-vscode.openPullRequest",
"title": "Open Pull Request",
"category": "WizGIT",
"icon": "$(link-external)"
}
],
"menus": {
"view/title": [
{
"command": "wizgit-in-vscode.refreshRepositories",
"when": "view == wizgitRepositories",
"group": "navigation"
},
{
"command": "wizgit-in-vscode.createRepository",
"when": "view == wizgitRepositories",
"group": "navigation"
},
{
"command": "wizgit-in-vscode.createIssue",
"when": "view == wizgitIssues",
"group": "navigation"
},
{
"command": "wizgit-in-vscode.createPullRequest",
"when": "view == wizgitPullRequests",
"group": "navigation"
}
],
"explorer/context": [
{
"command": "wizgit-in-vscode.createIssue",
"when": "explorerResourceIsFolder && wizgit:enabled",
"group": "7_modification"
}
],
"editor/context": [
{
"command": "wizgit-in-vscode.createIssue",
"when": "wizgit:enabled",
"group": "9_cutcopypaste"
}
],
"commandPalette": [
{
"command": "wizgit-in-vscode.refreshRepositories",
"when": "false"
},
{
"command": "wizgit-in-vscode.openIssue",
"when": "false"
},
{
"command": "wizgit-in-vscode.openPullRequest",
"when": "false"
}
]
},
"configuration": {
"title": "WizGIT",
"properties": {
"wizgit.apiEndpoint": {
"type": "string",
"description": "WizGIT API endpoint URL",
"default": ""
},
"wizgit.autoDetect": {
"type": "boolean",
"description": "Automatically detect WizGIT repositories in workspace",
"default": true
},
"wizgit.statusBar.enabled": {
"type": "boolean",
"description": "Show WizGIT information in status bar",
"default": true
},
"wizgit.notifications.enabled": {
"type": "boolean",
"description": "Enable WizGIT notifications",
"default": true
},
"wizgit.defaultBranch": {
"type": "string",
"description": "Default branch name for new repositories",
"default": "main"
}
}
}
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./"
},
"devDependencies": {
"@types/node": "16.x",
"@types/vscode": "^1.74.0",
"typescript": "^4.9.4"
},
"dependencies": {
"node-fetch": "^3.3.2"
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 145 KiB

10
resources/wizgit-logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 145 KiB

3024
src/extension.ts Normal file

File diff suppressed because it is too large Load Diff

22
tsconfig.json Normal file
View File

@@ -0,0 +1,22 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "ES2021",
"outDir": "out",
"rootDir": "src",
"lib": [
"ES2021",
"DOM"
],
"sourceMap": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
},
"exclude": [
"node_modules",
".vscode-test"
]
}