mirror of
https://github.com/WSA-Installer/.github.git
synced 2026-07-29 11:24:28 -07:00
feat: initial commit — org profile README, shared configs, scripts
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: [gshellmr-code]
|
||||
custom:
|
||||
- https://buymeacoffee.com/mrcyberdev
|
||||
@@ -0,0 +1,155 @@
|
||||
<div align="center">
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="../wsa-installer/assets/logo-dark.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="../wsa-installer/assets/logo-light.svg">
|
||||
<img alt="WSA Installer" src="../wsa-installer/assets/logo-light.svg" width="120">
|
||||
</picture>
|
||||
|
||||
# WSA Installer
|
||||
|
||||
### The Modern Windows Subsystem for Android Installation & Management Toolkit
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
[Website](https://wsa-installer.github.io) · [Download](https://github.com/WSA-Installer/wsa-installer/releases/latest) · [Documentation](https://wsa-installer.github.io/docs/) · [YouTube](https://www.youtube.com/@AT_Tech_Zone)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## Our Mission
|
||||
|
||||
Provide an easy, powerful, and reliable way to install, repair, update, customize, and manage Windows Subsystem for Android (WSA) with Google Play Store on Windows 10 and Windows 11 — with a beautiful, intuitive interface and advanced automation.
|
||||
|
||||
## Projects
|
||||
|
||||
| Repository | Description | Status |
|
||||
|:-----------|:------------|:-------|
|
||||
| **[wsa-installer](https://github.com/WSA-Installer/wsa-installer)** | Main installer application — one-click WSA + Play Store setup with background service, self-update, repair, and file sharing |  |
|
||||
| **[wsa-webdav](https://github.com/WSA-Installer/wsa-webdav)** | Headless Android WebDAV server APK for WSA — access your Android file system from any browser |  |
|
||||
| **[wsa-website](https://github.com/WSA-Installer/wsa-website)** | Official website — landing page, documentation, download hub |  |
|
||||
|
||||
## Features
|
||||
|
||||
| Feature | Description |
|
||||
|:--------|:------------|
|
||||
| Smart System Scan | Detects VT-x/AMD-V, Hyper-V, VirtualMachinePlatform, HypervisorPlatform, WSL via 5 detection methods |
|
||||
| One-Click Install | Handles download, extraction, configuration, and registration of WSA end-to-end |
|
||||
| Play Store Integration | Patches Google Apps (MindTheGapps 13.0) with automated ADB authorization |
|
||||
| Background Service | `WSABackgroundService` monitors WSA status, manages SDK lifecycle, auto-restarts on failure |
|
||||
| Self-Update | Checks server for updates with 30-chunk parallel download and silent install |
|
||||
| Repair & Uninstall | Complete WSA management with backup, repair, and clean uninstall flows |
|
||||
| File Sharing | WebDAV-based drive mounting — access WSA files as Windows network drives |
|
||||
| Glass Transparency | Modern Windows 11-inspired UI with configurable alpha-blended transparency |
|
||||
| Remote Config | Server-side configuration updates via Rust security gateway |
|
||||
| NSIS Installer | Professional Windows setup wizard with maintenance mode |
|
||||
|
||||
## Technology Stack
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ Technology Stack │
|
||||
├──────────────────────────────────────────────────────────────┤
|
||||
│ Python 3.14 │ Flet UI Framework │ Rust Native (.pyd) │
|
||||
│ PyQt6 │ PyInstaller │ Nuitka Compiler │
|
||||
│ NSIS │ ADB │ Windows Services │
|
||||
│ Kotlin │ Android SDK │ WebDAV Protocol │
|
||||
└──────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Download
|
||||
|
||||
| File | Size | Description |
|
||||
|:-----|:-----|:------------|
|
||||
| [WSA_Installer_Setup.exe](https://github.com/WSA-Installer/wsa-installer/releases/latest) | ~228 MB | Professional NSIS installer |
|
||||
| [bundle.wsa](https://github.com/WSA-Installer/wsa-installer/releases/latest) | ~1.21 GB | Pre-packaged WSA bundle (optional) |
|
||||
|
||||
### Install
|
||||
|
||||
1. Download `WSA_Installer_Setup.exe` from the [latest release](https://github.com/WSA-Installer/wsa-installer/releases/latest)
|
||||
2. Right-click → **Run as administrator**
|
||||
3. Follow the 5-step wizard: **Intro → Check → Install → Play Store → Complete**
|
||||
|
||||
### CLI
|
||||
|
||||
```cmd
|
||||
WSA_Installer_Setup.exe /S :: Silent install
|
||||
WSA_Installer_Setup.exe --repair-wsa :: Repair WSA
|
||||
WSA_Installer_Setup.exe --uninstall :: Uninstall WSA
|
||||
WSA_Installer_Setup.exe --file-sharing :: File sharing setup
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "WSA Installer"
|
||||
GUI[Flet GUI<br/>5-Step Wizard]
|
||||
IL[InstallerLogic<br/>Core Engine]
|
||||
RC[RemoteConfigManager<br/>Server Sync]
|
||||
BG[WSABackgroundService<br/>Windows Service]
|
||||
end
|
||||
|
||||
subgraph "Native Modules"
|
||||
WU[widget_ui.pyd<br/>Rust Security Gateway]
|
||||
PS[playstore_patcher_mem.pyd<br/>Play Store SDK]
|
||||
end
|
||||
|
||||
subgraph "External"
|
||||
ADB[ADB Bridge]
|
||||
WSA[Windows Subsystem<br/>for Android]
|
||||
PY[Embedded Python 3.14]
|
||||
end
|
||||
|
||||
GUI --> IL
|
||||
IL --> RC
|
||||
IL --> WU
|
||||
IL --> PS
|
||||
IL --> ADB
|
||||
ADB --> WSA
|
||||
PS --> PY
|
||||
BG --> WSA
|
||||
RC --> WU
|
||||
```
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| OS | Status |
|
||||
|:---|:-------|
|
||||
| Windows 11 22H2+ |  |
|
||||
| Windows 11 21H2 |  |
|
||||
| Windows 10 2004+ (build 19041) |  |
|
||||
| Windows 10 < 19041 |  |
|
||||
|
||||
## Community
|
||||
|
||||
| Channel | Link |
|
||||
|:--------|:-----|
|
||||
| YouTube | [@AT_Tech_Zone](https://www.youtube.com/@AT_Tech_Zone) |
|
||||
| Buy Me a Coffee | [mrcyberdev](https://buymeacoffee.com/mrcyberdev) |
|
||||
| GitHub Issues | [Report a Bug](https://github.com/WSA-Installer/wsa-installer/issues/new?template=bug_report.yml) |
|
||||
| GitHub Discussions | [Ask a Question](https://github.com/WSA-Installer/wsa-installer/discussions) |
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions! See our [Contributing Guide](https://github.com/WSA-Installer/wsa-installer/blob/main/CONTRIBUTING.md) for details.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the **MIT License** — see [LICENSE](https://github.com/WSA-Installer/wsa-installer/blob/main/LICENSE) for details.
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Built with care by [AT Tech Zone](https://www.youtube.com/@AT_Tech_Zone) — MR CYBER**
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
# Default owners for everything in the repo
|
||||
# Each line is a file pattern followed by one or more owners
|
||||
|
||||
# Global owners
|
||||
* @gshellmr-code
|
||||
|
||||
# Build pipeline
|
||||
build/ @gshellmr-code
|
||||
*.nsi @gshellmr-code
|
||||
*.spec @gshellmr-code
|
||||
|
||||
# Native modules
|
||||
native/ @gshellmr-code
|
||||
|
||||
# Documentation
|
||||
docs/ @gshellmr-code
|
||||
*.md @gshellmr-code
|
||||
@@ -0,0 +1,118 @@
|
||||
# Branch and Commit Convention
|
||||
|
||||
This document describes the branch naming and commit message conventions for WSA Installer.
|
||||
|
||||
## Branch Naming
|
||||
|
||||
### Format
|
||||
|
||||
```
|
||||
<type>/<short-description>
|
||||
```
|
||||
|
||||
### Types
|
||||
|
||||
| Type | Description | Example |
|
||||
|:-----|:------------|:--------|
|
||||
| `feature` | New feature | `feature/add-version-manager` |
|
||||
| `fix` | Bug fix | `fix/adb-connection-timeout` |
|
||||
| `docs` | Documentation | `docs/update-installation-guide` |
|
||||
| `refactor` | Code refactoring | `refactor/simplify-download-logic` |
|
||||
| `perf` | Performance | `perf/optimize-chunk-download` |
|
||||
| `test` | Tests | `test/add-installer-logic-tests` |
|
||||
| `build` | Build system | `build/update-nsis-script` |
|
||||
| `ci` | CI/CD | `ci/add-release-workflow` |
|
||||
| `release` | Release prep | `release/v1.3.0` |
|
||||
| `hotfix` | Critical fix | `hotfix/fix-service-crash` |
|
||||
|
||||
### Examples
|
||||
|
||||
```
|
||||
feature/add-version-manager
|
||||
fix/adb-connection-timeout
|
||||
docs/update-installation-guide
|
||||
release/v1.3.0
|
||||
hotfix/fix-service-crash
|
||||
```
|
||||
|
||||
## Commit Messages
|
||||
|
||||
### Format
|
||||
|
||||
```
|
||||
<type>(<scope>): <description>
|
||||
|
||||
[optional body]
|
||||
|
||||
[optional footer]
|
||||
```
|
||||
|
||||
### Types
|
||||
|
||||
| Type | Description |
|
||||
|:-----|:------------|
|
||||
| `feat` | New feature |
|
||||
| `fix` | Bug fix |
|
||||
| `docs` | Documentation changes |
|
||||
| `style` | Code style changes (formatting, etc.) |
|
||||
| `refactor` | Code refactoring |
|
||||
| `perf` | Performance improvements |
|
||||
| `test` | Adding or updating tests |
|
||||
| `build` | Build system changes |
|
||||
| `ci` | CI/CD changes |
|
||||
| `chore` | Maintenance tasks |
|
||||
|
||||
### Scopes
|
||||
|
||||
| Scope | Description |
|
||||
|:------|:------------|
|
||||
| `installer` | Main installer |
|
||||
| `service` | Background service |
|
||||
| `webdav` | File sharing |
|
||||
| `ui` | User interface |
|
||||
| `build` | Build pipeline |
|
||||
| `docs` | Documentation |
|
||||
|
||||
### Examples
|
||||
|
||||
```
|
||||
feat(installer): add parallel chunked download with resume
|
||||
fix(service): resolve WSA port detection timeout
|
||||
docs(readme): update installation guide
|
||||
build(nsis): add silent install support
|
||||
refactor(installer): simplify extract_7z function
|
||||
perf(download): optimize chunk merging
|
||||
test(installer): add download resume tests
|
||||
```
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
For breaking changes, add `BREAKING CHANGE:` in the footer:
|
||||
|
||||
```
|
||||
feat(api): change config endpoint response format
|
||||
|
||||
BREAKING CHANGE: config response now uses nested structure
|
||||
```
|
||||
|
||||
## Pull Requests
|
||||
|
||||
### Title Format
|
||||
|
||||
```
|
||||
<type>(<scope>): <description>
|
||||
```
|
||||
|
||||
### Description
|
||||
|
||||
- What does this PR do?
|
||||
- Why is this change needed?
|
||||
- How was this tested?
|
||||
|
||||
### Checklist
|
||||
|
||||
- [ ] Code follows project style
|
||||
- [ ] Self-review completed
|
||||
- [ ] Tests added/updated
|
||||
- [ ] Documentation updated
|
||||
- [ ] No breaking changes (or documented)
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"labels": [
|
||||
{ "name": "bug", "color": "d73a4a", "description": "Something isn't working" },
|
||||
{ "name": "enhancement", "color": "a2eeef", "description": "New feature or request" },
|
||||
{ "name": "documentation", "color": "0075ca", "description": "Improvements or additions to documentation" },
|
||||
{ "name": "good first issue", "color": "7057ff", "description": "Good for newcomers" },
|
||||
{ "name": "help wanted", "color": "008672", "description": "Extra attention is needed" },
|
||||
{ "name": "question", "color": "d876e3", "description": "Further information is requested" },
|
||||
{ "name": "wontfix", "color": "ffffff", "description": "This will not be worked on" },
|
||||
{ "name": "duplicate", "color": "cfd3d7", "description": "This issue already exists" },
|
||||
{ "name": "installation", "color": "fbca04", "description": "Related to installation process" },
|
||||
{ "name": "wsa", "color": "1a7f37", "description": "Related to WSA core" },
|
||||
{ "name": "play-store", "color": "3DDC84", "description": "Related to Play Store integration" },
|
||||
{ "name": "background-service", "color": "0078D4", "description": "Related to WSABackgroundService" },
|
||||
{ "name": "file-sharing", "color": "6f42c1", "description": "Related to WebDAV file sharing" },
|
||||
{ "name": "ui", "color": "e4e669", "description": "Related to GUI/interface" },
|
||||
{ "name": "build", "color": "bfd4f2", "description": "Related to build pipeline" },
|
||||
{ "name": "security", "color": "ee0701", "description": "Security-related issue" },
|
||||
{ "name": "priority:high", "color": "b60205", "description": "High priority" },
|
||||
{ "name": "priority:medium", "color": "fbca04", "description": "Medium priority" },
|
||||
{ "name": "priority:low", "color": "0e8a16", "description": "Low priority" },
|
||||
{ "name": "triage", "color": "ededed", "description": "Needs initial review" }
|
||||
],
|
||||
"milestones": [
|
||||
{
|
||||
"title": "v1.3.0",
|
||||
"description": "Next release — new features",
|
||||
"state": "open"
|
||||
},
|
||||
{
|
||||
"title": "v1.2.x",
|
||||
"description": "Bug fixes and patches",
|
||||
"state": "open"
|
||||
},
|
||||
{
|
||||
"title": "Documentation",
|
||||
"description": "Documentation improvements",
|
||||
"state": "open"
|
||||
},
|
||||
{
|
||||
"title": "Website",
|
||||
"description": "GitHub Pages website",
|
||||
"state": "open"
|
||||
},
|
||||
{
|
||||
"title": "Testing",
|
||||
"description": "Test coverage improvements",
|
||||
"state": "open"
|
||||
}
|
||||
],
|
||||
"discussions_categories": [
|
||||
{
|
||||
"name": "Ideas",
|
||||
"description": "Feature ideas and suggestions",
|
||||
"slug": "ideas"
|
||||
},
|
||||
{
|
||||
"name": "Q&A",
|
||||
"description": "Questions and answers",
|
||||
"slug": "q-a"
|
||||
},
|
||||
{
|
||||
"name": "Announcements",
|
||||
"description": "Official announcements",
|
||||
"slug": "announcements",
|
||||
"announcement": true
|
||||
},
|
||||
{
|
||||
"name": "General",
|
||||
"description": "General discussion",
|
||||
"slug": "general"
|
||||
},
|
||||
{
|
||||
"name": "Show and Tell",
|
||||
"description": "Showcase your WSA setup",
|
||||
"slug": "show-and-tell"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
# WSA Installer — Release Notes Template
|
||||
|
||||
Use this template when creating GitHub releases.
|
||||
|
||||
---
|
||||
|
||||
## Release v{VERSION}
|
||||
|
||||
### Highlights
|
||||
|
||||
- [Feature/highlight 1]
|
||||
- [Feature/highlight 2]
|
||||
- [Feature/highlight 3]
|
||||
|
||||
### What's Changed
|
||||
|
||||
#### Features
|
||||
- [Feature 1] by @contributor
|
||||
- [Feature 2] by @contributor
|
||||
|
||||
#### Bug Fixes
|
||||
- [Fix 1] by @contributor
|
||||
- [Fix 2] by @contributor
|
||||
|
||||
#### Documentation
|
||||
- [Doc 1] by @contributor
|
||||
|
||||
#### Other Changes
|
||||
- [Change 1] by @contributor
|
||||
|
||||
### Downloads
|
||||
|
||||
| File | Size | SHA256 |
|
||||
|:-----|:-----|:-------|
|
||||
| `WSA_Installer_Setup.exe` | ~228 MB | [hash] |
|
||||
| `bundle.wsa` | ~1.21 GB | [hash] |
|
||||
|
||||
### Installation
|
||||
|
||||
1. Download `WSA_Installer_Setup.exe`
|
||||
2. Run as administrator
|
||||
3. Follow the 5-step wizard
|
||||
|
||||
### Upgrade
|
||||
|
||||
Existing users can upgrade via the built-in self-update feature, or download the latest release.
|
||||
|
||||
### Known Issues
|
||||
|
||||
- [Known issue 1]
|
||||
- [Known issue 2]
|
||||
|
||||
### Full Changelog
|
||||
|
||||
See [CHANGELOG.md](https://github.com/WSA-Installer/wsa-installer/blob/main/CHANGELOG.md) for the complete changelog.
|
||||
|
||||
### Credits
|
||||
|
||||
Thanks to all contributors who helped with this release!
|
||||
|
||||
---
|
||||
|
||||
**SHA256 Checksums:**
|
||||
|
||||
```
|
||||
{SHA256_HASH} WSA_Installer_Setup.exe
|
||||
{SHA256_HASH} bundle.wsa
|
||||
```
|
||||
@@ -0,0 +1,97 @@
|
||||
# Release Strategy
|
||||
|
||||
This document describes the release process for WSA Installer repositories.
|
||||
|
||||
## Versioning
|
||||
|
||||
WSA Installer follows [Semantic Versioning](https://semver.org/):
|
||||
|
||||
```
|
||||
MAJOR.MINOR.PATCH
|
||||
```
|
||||
|
||||
- **MAJOR** — Breaking changes or major rewrites
|
||||
- **MINOR** — New features (backward compatible)
|
||||
- **PATCH** — Bug fixes (backward compatible)
|
||||
|
||||
### Current Version
|
||||
|
||||
- **App Version:** 1.2.0.0
|
||||
- **WSA Build:** 2407.40000.4.0
|
||||
|
||||
## Release Cadence
|
||||
|
||||
| Type | Frequency | Description |
|
||||
|:-----|:----------|:------------|
|
||||
| Major | As needed | Breaking changes, major features |
|
||||
| Minor | Monthly | New features, improvements |
|
||||
| Patch | Weekly (as needed) | Bug fixes, security updates |
|
||||
|
||||
## Release Process
|
||||
|
||||
### 1. Prepare Release
|
||||
|
||||
1. Create a `release/v{VERSION}` branch from `main`
|
||||
2. Update version numbers in:
|
||||
- `app.py` — `APP_ID` suffix
|
||||
- `file_version_info.txt` — Version strings
|
||||
- `WSA_Installer_Setup.nsi` — `APP_VERSION`
|
||||
- `README.md` — Badge version
|
||||
3. Update `CHANGELOG.md` with release notes
|
||||
4. Update `ROADMAP.md` if needed
|
||||
|
||||
### 2. Test
|
||||
|
||||
1. Run the full build: `build.bat`
|
||||
2. Test on Windows 10 and Windows 11
|
||||
3. Test all flows: install, repair, uninstall, update
|
||||
4. Test Play Store integration
|
||||
5. Test background service
|
||||
6. Test file sharing
|
||||
|
||||
### 3. Create Release
|
||||
|
||||
1. Merge `release/v{VERSION}` into `main`
|
||||
2. Create a GitHub Release with tag `v{VERSION}`
|
||||
3. Upload artifacts:
|
||||
- `WSA_Installer_Setup.exe`
|
||||
- `bundle.wsa`
|
||||
4. Use the release notes template
|
||||
5. Publish the release
|
||||
|
||||
### 4. Post-Release
|
||||
|
||||
1. Update the website with new version
|
||||
2. Announce on YouTube
|
||||
3. Update documentation if needed
|
||||
|
||||
## Artifact Hashes
|
||||
|
||||
Always include SHA256 checksums in release notes:
|
||||
|
||||
```bash
|
||||
# Windows PowerShell
|
||||
Get-FileHash WSA_Installer_Setup.exe -Algorithm SHA256
|
||||
Get-FileHash bundle.wsa -Algorithm SHA256
|
||||
```
|
||||
|
||||
## Release Notes
|
||||
|
||||
Use the [release notes template](release-notes-template.md) for consistency.
|
||||
|
||||
## Hotfixes
|
||||
|
||||
For critical bugs:
|
||||
|
||||
1. Create a `hotfix/v{VERSION}` branch from `main`
|
||||
2. Fix the bug
|
||||
3. Test thoroughly
|
||||
4. Create a patch release
|
||||
5. Skip the monthly cycle if urgent
|
||||
|
||||
## Branch Protection
|
||||
|
||||
- `main` — Protected, requires PR review
|
||||
- `release/*` — Protected, requires PR review
|
||||
- `feature/*` — Unprotected, delete after merge
|
||||
- `fix/*` — Unprotected, delete after merge
|
||||
@@ -0,0 +1,78 @@
|
||||
# GitHub Labels Setup Script
|
||||
# Run this script to set up labels, milestones, and discussions categories
|
||||
# for your GitHub repositories using the GitHub CLI (gh).
|
||||
|
||||
# Prerequisites:
|
||||
# - GitHub CLI (gh) installed and authenticated
|
||||
# - Repository created on GitHub
|
||||
|
||||
# Usage:
|
||||
# .\setup-labels.ps1 <owner/repo>
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$Repo
|
||||
)
|
||||
|
||||
Write-Host "Setting up labels for $Repo..." -ForegroundColor Cyan
|
||||
|
||||
# Labels
|
||||
$labels = @(
|
||||
@{ name="bug"; color="d73a4a"; description="Something isn't working" },
|
||||
@{ name="enhancement"; color="a2eeef"; description="New feature or request" },
|
||||
@{ name="documentation"; color="0075ca"; description="Improvements or additions to documentation" },
|
||||
@{ name="good first issue"; color="7057ff"; description="Good for newcomers" },
|
||||
@{ name="help wanted"; color="008672"; description="Extra attention is needed" },
|
||||
@{ name="question"; color="d876e3"; description="Further information is requested" },
|
||||
@{ name="wontfix"; color="ffffff"; description="This will not be worked on" },
|
||||
@{ name="duplicate"; color="cfd3d7"; description="This issue already exists" },
|
||||
@{ name="installation"; color="fbca04"; description="Related to installation process" },
|
||||
@{ name="wsa"; color="1a7f37"; description="Related to WSA core" },
|
||||
@{ name="play-store"; color="3DDC84"; description="Related to Play Store integration" },
|
||||
@{ name="background-service"; color="0078D4"; description="Related to WSABackgroundService" },
|
||||
@{ name="file-sharing"; color="6f42c1"; description="Related to WebDAV file sharing" },
|
||||
@{ name="ui"; color="e4e669"; description="Related to GUI/interface" },
|
||||
@{ name="build"; color="bfd4f2"; description="Related to build pipeline" },
|
||||
@{ name="security"; color="ee0701"; description="Security-related issue" },
|
||||
@{ name="priority:high"; color="b60205"; description="High priority" },
|
||||
@{ name="priority:medium"; color="fbca04"; description="Medium priority" },
|
||||
@{ name="priority:low"; color="0e8a16"; description="Low priority" },
|
||||
@{ name="triage"; color="ededed"; description="Needs initial review" }
|
||||
)
|
||||
|
||||
foreach ($label in $labels) {
|
||||
$existing = gh label list --repo $Repo --json name | ConvertFrom-Json | Where-Object { $_.name -eq $label.name }
|
||||
if ($existing) {
|
||||
Write-Host " Label '$($label.name)' already exists, updating..." -ForegroundColor Yellow
|
||||
gh label edit $label.name --repo $Repo --color $label.color --description $label.description
|
||||
} else {
|
||||
Write-Host " Creating label '$($label.name)'..." -ForegroundColor Green
|
||||
gh label create $label.name --repo $Repo --color $label.color --description $label.description
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Setting up milestones..." -ForegroundColor Cyan
|
||||
|
||||
# Milestones
|
||||
$milestones = @(
|
||||
@{ title="v1.3.0"; description="Next release — new features" },
|
||||
@{ title="v1.2.x"; description="Bug fixes and patches" },
|
||||
@{ title="Documentation"; description="Documentation improvements" },
|
||||
@{ title="Website"; description="GitHub Pages website" },
|
||||
@{ title="Testing"; description="Test coverage improvements" }
|
||||
)
|
||||
|
||||
foreach ($ms in $milestones) {
|
||||
$existing = gh api "repos/$Repo/milestones?state=all" | ConvertFrom-Json | Where-Object { $_.title -eq $ms.title }
|
||||
if ($existing) {
|
||||
Write-Host " Milestone '$($ms.title)' already exists" -ForegroundColor Yellow
|
||||
} else {
|
||||
Write-Host " Creating milestone '$($ms.title)'..." -ForegroundColor Green
|
||||
gh api "repos/$Repo/milestones" -f title=$ms.title -f description=$ms.description -f state=open
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Setup complete!" -ForegroundColor Green
|
||||
Write-Host "Repository: https://github.com/$Repo" -ForegroundColor Cyan
|
||||
Reference in New Issue
Block a user