skillup 0.7.0__tar.gz → 0.7.2__tar.gz
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.
- {skillup-0.7.0 → skillup-0.7.2}/PKG-INFO +1 -1
- {skillup-0.7.0 → skillup-0.7.2}/pyproject.toml +1 -1
- {skillup-0.7.0 → skillup-0.7.2}/skillup/cli.py +15 -4
- {skillup-0.7.0 → skillup-0.7.2}/.github/workflows/ci.yml +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/.github/workflows/docs.yml +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/.github/workflows/publish.yml +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/.gitignore +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/.python-version +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/LICENSE +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/README.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/assets/logo-wordmark.svg +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/assets/logo.svg +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/assets/extra.css +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/assets/logo.svg +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/changelog.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/commands.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/development.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/index.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/lock-file.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/quickstart.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/docs/skill-definition.md +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/__init__.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/_tree_ui.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/azdevops.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/github.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/http.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/install.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/local.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/lock.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/skillup/settings.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_azdevops.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_cli.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_e2e.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_github_auth.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_install.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_migrate.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/tests/test_sync.py +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/uv.lock +0 -0
- {skillup-0.7.0 → skillup-0.7.2}/zensical.toml +0 -0
|
@@ -117,13 +117,14 @@ def add(
|
|
|
117
117
|
skills: Optional[List[str]] = typer.Option(None, "--skill", "-s", help="Specific skill(s) to add (non-interactive)"),
|
|
118
118
|
branch: Optional[str] = typer.Option(None, "--branch", "-b", help="Branch to install from instead of the latest release"),
|
|
119
119
|
search: Optional[str] = typer.Option(None, "--search", "-f", help="Filter skills shown in the tree (matches skill name or path, case-insensitive)"),
|
|
120
|
+
all_skills: bool = typer.Option(False, "--all-skills", help="Install all available skills non-interactively"),
|
|
120
121
|
):
|
|
121
122
|
"""Add skills from a GitHub repository, Azure DevOps repository, or local path."""
|
|
122
123
|
lock = load_lock()
|
|
123
124
|
ensure_dirs()
|
|
124
125
|
|
|
125
126
|
if is_local_path(repo):
|
|
126
|
-
_add_local(repo, lock, skills, search)
|
|
127
|
+
_add_local(repo, lock, skills, search, all_skills)
|
|
127
128
|
return
|
|
128
129
|
|
|
129
130
|
lock_key, short_ref = _parse_repo_input(repo)
|
|
@@ -149,7 +150,12 @@ def add(
|
|
|
149
150
|
repo_data = normalize_repo_data(lock["repos"].get(lock_key, {"skills": []}))
|
|
150
151
|
installed_skills = set(repo_data["skills"])
|
|
151
152
|
|
|
152
|
-
if
|
|
153
|
+
if all_skills:
|
|
154
|
+
selected = [s for s in available_skills if s not in installed_skills]
|
|
155
|
+
if not selected:
|
|
156
|
+
console.print(f"[yellow]No new skills available to add from {short_ref}.[/yellow]")
|
|
157
|
+
return
|
|
158
|
+
elif skills:
|
|
153
159
|
selected = [s for s in skills if s in available_skills and s not in installed_skills]
|
|
154
160
|
invalid = [s for s in skills if s not in available_skills]
|
|
155
161
|
already_installed = [s for s in skills if s in installed_skills]
|
|
@@ -193,7 +199,7 @@ def add(
|
|
|
193
199
|
console.print(f"[green]Skills from {short_ref} installed successfully![/green]")
|
|
194
200
|
|
|
195
201
|
|
|
196
|
-
def _add_local(repo: str, lock: dict, skills: Optional[List[str]], search: Optional[str]) -> None:
|
|
202
|
+
def _add_local(repo: str, lock: dict, skills: Optional[List[str]], search: Optional[str], all_skills: bool = False) -> None:
|
|
197
203
|
local_path = resolve_local_path(repo)
|
|
198
204
|
if not local_path.is_dir():
|
|
199
205
|
console.print(f"[red]Local path does not exist or is not a directory: {local_path}[/red]")
|
|
@@ -206,7 +212,12 @@ def _add_local(repo: str, lock: dict, skills: Optional[List[str]], search: Optio
|
|
|
206
212
|
repo_data = lock["repos"].get(lock_key, {"skills": [], "source": "local", "path": str(local_path)})
|
|
207
213
|
installed_skills = set(repo_data.get("skills", []))
|
|
208
214
|
|
|
209
|
-
if
|
|
215
|
+
if all_skills:
|
|
216
|
+
selected = [s for s in available_skills if s not in installed_skills]
|
|
217
|
+
if not selected:
|
|
218
|
+
console.print(f"[yellow]No new skills available to add from {display}.[/yellow]")
|
|
219
|
+
return
|
|
220
|
+
elif skills:
|
|
210
221
|
selected = [s for s in skills if s in available_skills and s not in installed_skills]
|
|
211
222
|
invalid = [s for s in skills if s not in available_skills]
|
|
212
223
|
already_installed = [s for s in skills if s in installed_skills]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|