Coder Social home page Coder Social logo

paket.credentialprovider.gen2support's Introduction

Paket.CredentialProvider.Gen2Support

The Problem

There are 2 different NuGet credential providers; Gen 1, and Gen2.

This was the first effort by the NuGet team to introduce credential providers. The interface is simple, they print some JSON to stdout with a status code. The NuGet team overlooked .NET Core support, because the discovery process assumed they would be named CredentialProvider.*.exe.

Paket added Gen 1 provider support, and in addition supported .NET Core by changing the discovery process to include CredentialProvider.*.dll, running those under .NET Core. With that said, there are no credential providers I am aware of that adopt this mechanism.

The NuGet team realised they needed .NET Core support, and cross-plat support. At the same time, they wanted to tackle NuGets plugin architecture, plugin trust and more. The result was a more complex system, where there is a JSON protocol over stdin/stdout with handshakes and all sorts.

Paket has yet to adopt Gen 2 credential providers.

Providers and Support

Provider Gen Windows Support macOS Support ADO Distributed* NuGet Client Support Paket Support
CredentialProvider.VSS Gen 1 ✔️ Going soon ✔️
CredentialProvider.Microsoft Gen 2 ✔️ ✔️ ✔️ ✔️
CredentialProvider.Gen2Support Gen 1 ✔️ ✔️ Going soon ✔️
  • ADO Distributed means that it is what is shown on the Artifacts page under "Connect to feed..." dialog.

This Provider

This package acts as a shim by implementing a Gen 1 provider, that talks to Gen 2 providers. It has knowledge of the Azure Artifacts Credential Provider so that under non-Windows it can ask you to run the appropriate command to authenticate.

This shim solves the problem of adopting Gen 2 pacakges with Paket while the eco-systems align.

Installation

Be sure to have installed the Azure Artifacts Credential Provider, under $HOME/.nuget/plugins.

Windows

  • Ensure the following directory exists %HOME%\AppData\Local\NuGet\CredentialProviders\Paket.CredentialProvider.Gen2Support, creating any missing directories as necessary.
  • Download the latest CredentialProvider.Gen2Support.zip from the releases tab and unzip the contents of into it.

macOS

  • Create a folder named CredentialProviders under: $HOME/.local/share/NuGet
  • Download the latest CredentialProvider.Gen2Support.zip from the releases tab and unzip the contents of into it.

paket.credentialprovider.gen2support's People

Contributors

daniel-chambers avatar slang25 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.