Beispiel #1
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                var url = new Uri(productCredentials.Host, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
                var c   = new ProGetClient(url, null, "api", AH.Unprotect(productCredentials.ApiKey));

                return(await c.GetFeedNamesAsync().ConfigureAwait(false));
            }

#pragma warning disable CS0618 // Type or member is obsolete
            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
            string baseUrl = new Uri(credentials.Url, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
            var    client  = new ProGetClient(baseUrl, null, credentials.UserName, AH.Unprotect(credentials.Password));

            return(await client.GetFeedNamesAsync().ConfigureAwait(false));
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName))
            {
                return(Enumerable.Empty <string>());
            }

            ProGetClient client = null;

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                client = new ProGetClient(productCredentials.Host, feedName, "api", AH.Unprotect(productCredentials.ApiKey));
            }

            if (client == null)
            {
#pragma warning disable CS0618 // Type or member is obsolete
                var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
                client = new ProGetClient(credentials.Url, feedName, credentials.UserName, AH.Unprotect(credentials.Password));
            }

            var packages = await client.GetPackagesAsync().ConfigureAwait(false);

            return(from p in packages
                   let name = new PackageName(p.@group, p.name)
                              orderby name.Group, name.Name
                   select name.ToString());
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];
            var packageName    = config["PackageName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName) || string.IsNullOrEmpty(packageName))
            {
                return(Enumerable.Empty <string>());
            }

            ProGetClient client = null;

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                client = new ProGetClient(productCredentials.Host, feedName, "api", AH.Unprotect(productCredentials.ApiKey));
            }


#pragma warning disable CS0618 // Type or member is obsolete
            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
            if (client == null)
            {
                client = new ProGetClient(credentials.Url, feedName, credentials.UserName, AH.Unprotect(credentials.Password));
            }

            var package = await client.GetPackageInfoAsync(PackageName.Parse(packageName));

            return(new[] { "latest", "latest-stable" }.Concat(package.versions));
        }
        public static async Task <Error> NpmDeletePackageAsync(this NpmClient client, string packageId, string version)
        {
            var uri      = new Uri(client.Uri);
            var hostUri  = uri.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);
            var feedName = uri.Segments.Last().Replace("/", "");

            var sourceClient = new ProGetClient(hostUri, client.ApiKey);
            var sourceFeeds  = await sourceClient.Feeds_GetFeedsAsync(false);

            var sourceFeed = sourceFeeds.SingleOrDefault(f => f.Feed_Name.Equals(feedName, StringComparison.CurrentCultureIgnoreCase));

            if (sourceFeed == null)
            {
                return(new Error(HttpStatusCode.NotFound, $"NPM Feed not found {client.FeedName} on {client.Uri}"));
            }
            var(name, scope) = ParseNpmId(packageId);
            var result = await sourceClient.NpmPackages_DeletePackageAsync(sourceFeed.Feed_Id, name, scope, version);

            if (result)
            {
                return(null);
            }

            return(new Error(HttpStatusCode.ServiceUnavailable, "Error"));
        }
        public async Task GetLatestPackageVersion_NonExistingPackage_ReturnsNull()
        {
            var client = new ProGetClient();

            var versions = await client.GetPackageVersions("Newtonsoft.Json");

            Assert.IsTrue(!versions.Any());
        }
        public async Task GetLatestPackageVersion_BotModelsPackage_ReturnsLatestVersion()
        {
            var client = new ProGetClient();

            var versions = await client.GetPackageVersions("If.ClaimsForms.Bot.Models");

            Assert.IsNotNull(versions);
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var    credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
            string baseUrl     = new Uri(credentials.Url, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
            var    client      = new ProGetClient(baseUrl, null, credentials.UserName, ConvertValue(credentials.Password));

            return(await client.GetFeedNamesAsync().ConfigureAwait(false));
        }
Beispiel #8
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];
            var packageName    = config["PackageName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName) || string.IsNullOrEmpty(packageName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
            var client      = new ProGetClient(credentials.Url, feedName, credentials.UserName, ConvertValue(credentials.Password));

            var package = await client.GetPackageInfoAsync(PackageName.Parse(packageName));

            return(new[] { "latest" }.Concat(package.versions));
        }
Beispiel #9
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
            var client      = new ProGetClient(credentials.Url, feedName, credentials.UserName, ConvertValue(credentials.Password));

            var packages = await client.GetPackagesAsync().ConfigureAwait(false);

            return(from p in packages
                   let name = new PackageName(p.@group, p.name)
                              orderby name.Group, name.Name
                   select name.ToString());
        }
 public ProGetClientShould()
 {
     _client = new ProGetClient("http://mbp:82", "12345");
 }
        public static async Task <(IEnumerable <Package> Packages, Error Error)> NpmFetchPackagesAsync(this NpmClient client, string searchTerm, bool includePreRelease, bool downloadPackageContent)
        {
            var uri      = new Uri(client.Uri);
            var hostUri  = uri.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);
            var feedName = uri.Segments.Last().Replace("/", "");

            var  sourceClient = new ProGetClient(hostUri, client.ApiKey);
            Feed sourceFeed;

            try
            {
                sourceFeed = (await sourceClient.Feeds_GetFeedsAsync(false))
                             .SingleOrDefault(f => f.Feed_Name.Equals(feedName, StringComparison.CurrentCultureIgnoreCase));
            }
            catch (FlurlHttpException ex)
            {
                var statusCode = ex.Message.Contains("403")
                    ? HttpStatusCode.Forbidden
                    : HttpStatusCode.NotFound;

                return(null, new Error(statusCode, ex.Message));
            }

            if (sourceFeed == null)
            {
                return(null, new Error(HttpStatusCode.NotFound, $"Feed not found ({client.FeedName}) on {hostUri}"));
            }

            var packageVersions = await sourceClient.NpmFeeds_GetAllPackageVersionsAsync(sourceFeed.Feed_Id);

            var npmPackageVersionsArray = packageVersions as NpmPackageAllVersions[] ?? packageVersions.ToArray();

            var tasks = npmPackageVersionsArray
                        .Select(p => ConvertNpmPackageVersionToPackageAsync(client, p))
                        .ToArray();

            await Task.WhenAll(tasks);

            searchTerm ??= string.Empty;

            var packages = tasks
                           .Select(x => x.Result)
                           .Where(p => p.Id.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) && (includePreRelease || !p.IsPrerelease))
                           .ToList();

            if (downloadPackageContent)
            {
                foreach (var package in packages)
                {
                    var(content, error) = await client.NpmDownloadPackageAsync(package);

                    if (error != null)
                    {
                        throw new WebException(error.ErrorMessage);
                    }

                    package.Content = content;
                }
            }

            return(packages, null);
        }