Compare commits

3 Commits

Author SHA1 Message Date
cbe5614794 fixes the push 2025-07-14 17:12:15 +01:00
f03c56fead Merge branch 'main' of gitea.pschneider.fr:paul/isn 2025-07-08 17:47:24 +01:00
26e253a3ab get prereleases from restoration by default
Fixes the .nupkgs pushes
2025-07-08 17:46:11 +01:00
10 changed files with 42 additions and 21 deletions

View File

@ -5,6 +5,7 @@ using isnd.Attributes;
using isnd.Entities;
using isn.abst;
using System.Linq;
using Microsoft.Extensions.Logging;
namespace isnd.Controllers
{
@ -27,14 +28,18 @@ namespace isnd.Controllers
return BadRequest("Package does´nt exist in the file system.");
var pkgVersionDirInfo = pkgDirInfo.GetDirectories().FirstOrDefault(
s=>s.Name==version);
if (pkgVersionDirInfo==null)
return BadRequest("Package does´nt exist in the specified version.");
var pkgNameSpec=$"{id}-{version}.{Constants.PacketFileExtension}";
FileInfo pkgFileInfo = pkgVersionDirInfo.GetFiles()
.FirstOrDefault(p=>string.Compare(p.Name,pkgNameSpec,
System.StringComparison.InvariantCultureIgnoreCase)==0);
if (!pkgFileInfo.Exists)
if (pkgFileInfo==null || !pkgFileInfo.Exists)
{
logger.LogError($"Not found in {pkgVersionDirInfo.FullName} : {pkgNameSpec}");
return BadRequest("Package version does´nt exist in the file system.");
}
return File(pkgFileInfo.OpenRead(), "application/zip; charset=binary");

View File

@ -12,7 +12,7 @@ namespace isnd.Controllers
public IActionResult GetVersions(
string id,
string version,
bool prerelease = false,
bool prerelease = true,
string packageType = null,
int skip = 0,
int take = 50)

View File

@ -8,6 +8,7 @@ using Microsoft.Extensions.Logging;
using isnd.Entities;
using Microsoft.AspNetCore.Http;
using isn.abst;
using System.IO;
namespace isnd.Controllers
{
@ -33,12 +34,28 @@ namespace isnd.Controllers
logger.LogError("403 : no api-key");
return Unauthorized();
}
bool foundPackage = false;
foreach (IFormFile file in Request.Form.Files)
{
var version = await packageManager.PutPackageAsync(file.OpenReadStream(), dbApiKey.UserId);
logger.LogInformation($"new package : {version.PackageId} {version.NugetLink}");
FileInfo inputFileInfo = new FileInfo(file.FileName);
switch (inputFileInfo.Extension)
{
case ".nupkg":
case ".nupkgs":
var libVersion = await packageManager.PutPackageAsync(inputFileInfo.Extension, file.OpenReadStream(), dbApiKey.UserId);
logger.LogInformation($"new package : {libVersion.PackageId} {libVersion.NugetLink}");
foundPackage = true;
break;
default:
logger.LogInformation($"file extension is not supported : {inputFileInfo.Extension}");
break;
}
}
if (foundPackage)
return Ok();
return BadRequest("no package");
}
catch (Exception ex)
{

View File

@ -30,7 +30,7 @@ namespace isnd.Interfaces
Task<PackageSearchResult> SearchPackageAsync(PackageRegistrationQuery query);
Task<PackageVersion> PutPackageAsync(Stream packageStream, string ownerId);
Task<PackageVersion> PutPackageAsync(string fileExtension, Stream packageStream, string ownerId);
}
}

View File

@ -396,7 +396,7 @@ namespace isnd.Services
return new PackageSearchResult(packages, apiBase, count);
}
public async Task<PackageVersion> PutPackageAsync(Stream packageStream, string ownerId)
public async Task<PackageVersion> PutPackageAsync(string fileExtension, Stream packageStream, string ownerId)
{
PackageVersion version = null;
using (packageStream)
@ -441,7 +441,7 @@ namespace isnd.Services
string packageIdPath = Path.Combine(isndSettings.PackagesRootDir,
pkgId);
pkgPath = Path.Combine(packageIdPath, nugetVersion.ToFullString());
string name = $"{pkgId}-{nugetVersion}." + Constants.PacketFileExtension;
string name = $"{pkgId}-{nugetVersion}" + fileExtension;
fullPath = Path.Combine(pkgPath, name);
var authors = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;

View File

@ -52,7 +52,10 @@ namespace isnd
.Configure<AdminStartupList>(adminStartupListConf)
.Configure<MigrationsEndPointOptions>(o => o.Path = "~/migrate")
.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")))
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"))
.ConfigureWarnings(w => w.Ignore(RelationalEventId.PendingModelChangesWarning))
.EnableDetailedErrors()
)
.AddIdentity<ApplicationUser, IdentityRole>()
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>(

Binary file not shown.

View File

@ -3,4 +3,7 @@
<packageSources>
<add key="localhost" value="https://localhost:5001/v3/index.json" protocolVersion="3" />
</packageSources>
<disabledPackageSources>
<add key="localhost" value="true" />
</disabledPackageSources>
</configuration>

View File

@ -11,11 +11,4 @@
<Version>1.0.7</Version>
</PropertyGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
<PackageReference Include="isn.abst" Version="1.0.24" />
</ItemGroup>
</Project>

View File

@ -183,7 +183,7 @@ namespace isnd.host.tests
PackageUpdateResource pushRes = await repository.GetResourceAsync<PackageUpdateResource>();
SymbolPackageUpdateResourceV3 symbolPackageResource = await repository.GetResourceAsync<SymbolPackageUpdateResourceV3>();
await pushRes.Push(new List<string>{ "../../../Yavsc.Abstract.1.0.8.nupkg" }, null,
await pushRes.Push(new List<string>{ "/home/paul/workspace/isn/test/data/packages/AsciiDocNet.1.0.0.nupkg" }, null,
5000, false, GetApiKey, GetSymbolsApiKey, false, false, symbolPackageResource, logger);
}