Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

third-party repository support #226

Closed
patrick330602 opened this issue May 20, 2020 · 12 comments
Closed

third-party repository support #226

patrick330602 opened this issue May 20, 2020 · 12 comments
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.

Comments

@patrick330602
Copy link

Description of the new feature/enhancement

the current package managers for windows such as Scoop allows you to create your own repository, it would be awesome if you can add your own repo to allow users to customize the repo to their needs.

Proposed technical implementation details (optional)

@patrick330602 patrick330602 added the Issue-Feature This is a feature request for the Windows Package Manager client. label May 20, 2020
@megamorf
Copy link

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.

The default source reflects that data available from the Community repo.

We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:

PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

@AntoineTurmel
Copy link

@megamorf but how do you make your own "source" server ?

@megamorf
Copy link

@AntoineTurmel As of right now the only available source type is Microsoft.PreIndexed.Package which is defined as:

// A source where the index is precomputed and stored on a server within an optional MSIX package.
// In addition, the manifest files are also individually available on the server.
// Arg :: Expected to be a fully qualified path to the root of the data.
// This can be a web location such as https://somewhere/ or a local file share \\somewhere\
// Under this path there must exist an MSIX package called "index.msix".
// This must have a file called "index.db" contained within, which is a SQLiteIndex.
// The index's paths refer to relative locations under the Arg value.
// Data :: The package family name of the package at Arg + /index.msix.

Repo updates are done via Azure DevOps pipelines which don't seem to be included in the repos so no luck there. The only workaround for now is to have manifests and setups on a share and reference those paths in the manifest files. Then, as mentioned before, provide the --manifest during the winget install call.

@denelon
Copy link
Contributor

denelon commented May 28, 2020

#118 May be the most simple way to achieve third-party repository support.

@denelon denelon added this to the Package Manager Backlog milestone May 28, 2020
@rbleattler
Copy link

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.
The default source reflects that data available from the Community repo.
We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:

PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

This is already possible as per https://github.com/microsoft/winget-cli#sources:

The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retreive the metadata about the packages, so that the client can act on it.
The default source reflects that data available from the Community repo.
We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

PS > winget source list
PS > winget source add --help

You can also simply throw some manifests on a fileshare and install them via:

PS > winget install --manifest \\fileserver\share\packagerepo\manifests\mycompany\myapp\1.0.0.yaml

See https://aka.ms/winget-command-source for details.

Excellent contribution. Thank you for going out of your way to make this information available to those searching for some sort of solution.

@denelon denelon modified the milestones: Package Manager Backlog, Package Manager v0.11 Aug 19, 2020
@denelon denelon modified the milestones: Package Manager v0.11.x, Package Manager v1.0 May 3, 2021
@denelon
Copy link
Contributor

denelon commented May 3, 2021

It is possible to add additional repositories using winget source add.

For help you can execute winget source -?

Support for REST API based repositories is nearly complete in the client as of v0.3.

We will be providing a reference implementation of a REST API based source along with our v1.0 release.

@denelon
Copy link
Contributor

denelon commented Aug 24, 2021

Updating this issue to help users find the reference implementation at
https://github.com/microsoft/winget-cli-restsource

@mherrmann
Copy link

mherrmann commented Jan 10, 2022

For people looking for a private repository, we offer this now at https://winget.pro. It's open source. You can either have us host it for you, or set it up on your own infrastructure.

@Croydon
Copy link

Croydon commented Jan 11, 2022

For people looking for a private repository, we offer this now as a hosted service at https://winget.pro.

Since this service isn't part of Microsoft, I don't think that you should use the winget name like that

@rbleattler
Copy link

I definitely agree with this…

For people looking for a private repository, we offer this now as a hosted service at https://winget.pro.

Since this service isn't part of Microsoft, I don't think that you should use the winget name like that

@thilojaeggi
Copy link

Not sure if it's ok to also advertise here but seeing since Winget.pro did it, I've created WinGetty over here: https://github.com/thilojaeggi/WinGetty which does everything Winget.pro does and more with the addition of it being open source and self-host able.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.
Projects
None yet
Development

No branches or pull requests

8 participants