Skip to content
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
4d5135f
support virtual packages on generic git hosts (Gitea)
GanesanRengasamy Apr 6, 2026
cc79114
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 7, 2026
3dedd94
Addressed reviewed corrections
GanesanRengasamy Apr 7, 2026
8cfcd22
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel Apr 9, 2026
13dbf73
Update src/apm_cli/deps/github_downloader.py
ganesanviji Apr 9, 2026
c386e89
Merge branch 'main' into feat/genric-host-gitea-private
sergio-sisternes-epam Apr 10, 2026
e455776
Review comments addressed
ganesanviji Apr 15, 2026
ab09b7a
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 15, 2026
4fb6dcd
Merge branch 'feat/genric-host-gitea-private' of https://github.com/g…
ganesanviji Apr 16, 2026
0b3460c
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 16, 2026
8cc38d8
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 17, 2026
47b8051
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel Apr 18, 2026
22cc4e7
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel Apr 19, 2026
ea3fd0c
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 24, 2026
00f88e7
Update reference.py
ganesanviji Apr 24, 2026
fb75924
Merge branch 'feat/genric-host-gitea-private' of https://github.com/g…
ganesanviji Apr 24, 2026
77c077d
restore: re-add TestVirtualFilePackageYamlGeneration and TestSCPPortD…
ganesanviji Apr 24, 2026
dbaa48b
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel Apr 24, 2026
8b56ffa
Review concerns addressed
ganesanviji Apr 25, 2026
d55b754
Merge branch 'feat/genric-host-gitea-private' of https://github.com/g…
ganesanviji Apr 25, 2026
8e3e078
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 25, 2026
179ce53
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 25, 2026
1d74243
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel Apr 25, 2026
d183107
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 26, 2026
b4af12d
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 26, 2026
c1f4d49
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji Apr 27, 2026
77e2d02
review changes addressed
ganesanviji May 6, 2026
4a6ea32
Merge remote-tracking branch 'upstream/main' into feat/genric-host-gi…
ganesanviji May 6, 2026
59308a9
Merge branch 'main' of https://github.com/microsoft/apm into feat/gen…
ganesanviji May 6, 2026
825361c
Merge branch 'main' into feat/genric-host-gitea-private
ganesanviji May 6, 2026
2049524
Merge branch 'main' of https://github.com/microsoft/apm into feat/gen…
ganesanviji May 8, 2026
a509b96
Merge branch 'main' into feat/genric-host-gitea-private
danielmeppiel May 8, 2026
c006e9a
style: apply ruff format to fix CI lint
danielmeppiel May 8, 2026
13fd8cd
fix(deps): guard token forwarding to non-GitHub hosts; decode Gitea A…
May 8, 2026
3928c24
Address round-2 panel follow-ups for Gitea/Gogs support
May 8, 2026
3c76c96
Regenerate NOTICE for requests floor bump
May 8, 2026
d7d7b90
Fix CodeQL py/incomplete-url-substring-sanitization in 404 test
May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Virtual subdirectory and raw-file packages now resolve from self-hosted Git services (Gitea, Gogs) via raw URL with API v1/v3 fallback. (#587)
- `shared/apm.md` gh-aw shared workflow exposes a `target:` import input (default `all`) so consumer workflows can ship slim, single-harness bundles instead of always packing every layout. (#1184)

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ One command, no configuration -- VS Code and GitHub Copilot read the file automa
One `apm.yml` describes every primitive your agents need — instructions, skills, prompts, agents, hooks, plugins, MCP servers — and `apm install` reproduces the exact same setup across every client on every machine. `apm.lock.yaml` pins the resolved tree the way `package-lock.json` does for npm.

- **[One manifest for everything](https://microsoft.github.io/apm/reference/primitive-types/)** — declared once, deployed across Copilot, Claude, Cursor, OpenCode, Codex, Gemini, Windsurf
- **[Install from anywhere](https://microsoft.github.io/apm/guides/dependencies/)** — GitHub, GitLab, Bitbucket, Azure DevOps, GitHub Enterprise, any git host
- **[Install from anywhere](https://microsoft.github.io/apm/guides/dependencies/)** — GitHub, GitLab, Bitbucket, Azure DevOps, GitHub Enterprise, Gitea, Gogs, any git host
- **[Transitive dependencies](https://microsoft.github.io/apm/guides/dependencies/)** — packages can depend on packages; APM resolves the full tree
- **[Author plugins](https://microsoft.github.io/apm/guides/plugins/)** — build Copilot, Claude, and Cursor plugins with dependency management, then export standard `plugin.json`
- **[Marketplaces](https://microsoft.github.io/apm/guides/marketplaces/)** — install plugins from curated registries in one command, deployed across all targets and locked
Expand Down
4 changes: 3 additions & 1 deletion docs/src/content/docs/guides/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ APM dependencies are git repositories containing `.apm/` directories with contex
- **Build on tested context** instead of starting from scratch
- **Maintain consistency** across multiple repositories and teams

APM supports any git-accessible host — GitHub, GitLab, Bitbucket, self-hosted instances, and more.
APM supports any git-accessible host — GitHub, GitLab, Bitbucket, Gitea, Gogs, self-hosted instances, and more. See [GitHub Authentication Setup](#github-authentication-setup) below for how tokens flow to non-GitHub hosts via the git credential helper.

## Dependency Types

Expand All @@ -36,6 +36,8 @@ APM supports multiple dependency types:

**Virtual File Packages** download a single file (like a prompt or instruction) and integrate it directly.

For self-hosted **Gitea** and **Gogs**, virtual subdirectory and file packages resolve via the `/{owner}/{repo}/raw/{ref}/{path}` URL first, then fall back to the Contents API (v1 native, v3 Gogs-compat). GitLab is not yet supported for virtual packages -- use git-clone-based dependencies for GitLab repos.

### Claude Skills

Claude Skills are packages with a `SKILL.md` file that describe capabilities for AI agents. APM can install them and transform them for your target platform:
Expand Down
2 changes: 2 additions & 0 deletions packages/apm-guide/.apm/skills/apm-usage/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ Virtual packages reference a subset of a repository.

Classification is by extension only. A path like `owner/repo/collections/security` (no extension) is a Subdirectory; the actual shape -- APM package (incl. dep-only `apm.yml` with no `.apm/`), skill bundle, or plugin -- is resolved at fetch time by probing for `apm.yml`.

**Gitea and Gogs (self-hosted or vendor-hosted):** virtual packages resolve via the host's `/{owner}/{repo}/raw/{ref}/{path}` URL first, then fall back to the Contents API (v1 native, v3 Gogs-compat). GitLab nested-group repos (`group/subgroup/repo`) require the object form (`git: <full-url>`, `path: <virtual>`) -- shorthand is ambiguous on >2-segment paths.

> **Removed (#1094):** the legacy `.collection.yml` / `.collection.yaml` virtual-package form is no longer supported. Convert any `.collection.yml` to an `apm.yml` with a `dependencies:` section, then reference the resulting subdirectory as a regular subdirectory virtual package.

## Canonical storage rules
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dependencies = [
"click>=8.0.0",
"colorama>=0.4.6",
"pyyaml>=6.0.0",
"requests>=2.28.0",
"requests>=2.31.0",
"python-frontmatter>=1.0.0",
"llm>=0.17.0",
"llm-github-models>=0.1.0",
Expand Down
341 changes: 290 additions & 51 deletions src/apm_cli/deps/download_strategies.py

Large diffs are not rendered by default.

Loading
Loading