trying with isn.abst
This commit is contained in:
19
README.md
19
README.md
@ -20,21 +20,22 @@ wget http://localhost:5000/package/index.json?q=your&prerelease=true&semVerLevel
|
||||
|
||||
### Compilation
|
||||
|
||||
Depuis le dossier de la solution, compiler la solution :
|
||||
Dans le dossier de la solution, compiler la solution :
|
||||
|
||||
````bash
|
||||
dotnet build /restore -c Release
|
||||
dotnet publish -c Release
|
||||
dotnet publish -c Release src/isnd
|
||||
````
|
||||
|
||||
### Déploiement du serveur
|
||||
|
||||
Commençont par la livraison initiale, aujourd'hui :
|
||||
La livraison initiale, aujourd'hui :
|
||||
|
||||
````bash
|
||||
sudo mkdir -p /srv/www/isnd
|
||||
sudo cp -a src/isnd/bin/Release/net7.0/publish/* /srv/www/isnd
|
||||
sudo cp -a src/isnd/bin/Release/net8.0/publish/* /srv/www/isnd
|
||||
sudo cp contrib/isnd.service /etc/systemd/system
|
||||
chown -R isn:isn /srv/www/isnd/
|
||||
sudo systemctl daemon-reload
|
||||
````
|
||||
|
||||
@ -43,13 +44,13 @@ son utilisateur, et le droit de créer des tables (ce dernier droit pourrait exp
|
||||
|
||||
Il faudra éditer la configuration pour indiquer :
|
||||
|
||||
* la connextion à une base de donnée Postresgql, sous la forme :
|
||||
* dans /etc/systemd/system/isnd.service , la connextion à une base de donnée Postresgql, sous la forme :
|
||||
`"Server=<pgserver>;Port=<pgport>;Database=<dbname>;Username=<dbusername>;Password=<dbpass>;"`
|
||||
* la connection au serveur de messagerie,
|
||||
* l'URL du ou des sites à propulser,
|
||||
* Les autres détails.
|
||||
* dans /srv/www/isnd/appsettings.Production.json, la connection au serveur de messagerie,
|
||||
* l'URL externe du ou des sites à propulser, et à utiliser dans la description de service,
|
||||
* et les autres détails.
|
||||
|
||||
Pour faire ceci, vous pourrez éditer une copie du fichier `appsettings.json` vers `appsettings.Production.json`,
|
||||
Pour faire ceci, vous pourrez éditer une copie du fichier `appsettings.json` vers `appsettings.Production.json`,
|
||||
pour renseigner toutes les valeurs spécifiées.
|
||||
|
||||
* Démarrer le serveur :
|
||||
|
@ -12,17 +12,17 @@ Type=simple
|
||||
User=isn
|
||||
Group=isn
|
||||
WorkingDirectory=/srv/www/isnd/
|
||||
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
|
||||
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
|
||||
#RuntimeDirectory=gitea
|
||||
ExecStart=/srv/www/isnd/isnd
|
||||
Restart=always
|
||||
Environment=HOME=/srv/www/isnd
|
||||
|
||||
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
Environment="HOME=/srv/www/isnd"
|
||||
Environment="ASPNETCORE_ENVIRONMENT=Production"
|
||||
Environment="ASPNETCORE_ConnectionStrings__DefaultConnection=Server=localhost;Port=5432;Database=isnd;Username=paul;Password=RvJa=y#b/tfg;"
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
SyslogIdentifier=isnd
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
|
@ -27,13 +27,9 @@ namespace isnd.Data
|
||||
_ = builder.Entity<PackageVersion>()
|
||||
.HasOne(v => v.Package).WithMany(p => p.Versions).HasForeignKey(x => x.PackageId);
|
||||
|
||||
|
||||
_ = builder.Entity<PackageDependencyGroup>().HasOne(g=>g.PackageVersion)
|
||||
.WithMany(v => v.DependencyGroups).HasForeignKey(x => new { x.PackageId, x.PackageVersionFullString } );
|
||||
|
||||
_ = builder.Entity<Dependency>().HasOne(d=>d.Group)
|
||||
.WithMany(g=>g.Dependencies);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -8,12 +8,13 @@ namespace isnd.Data
|
||||
{
|
||||
public class Dependency
|
||||
{
|
||||
[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public string Id { get;set;}
|
||||
/// <summary>
|
||||
/// Dependency Package Identifier
|
||||
/// </summary>
|
||||
/// <value></value>
|
||||
[Key]
|
||||
public string Id { get;set;}
|
||||
public string PackageId { get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Dependency Group Id
|
||||
|
@ -19,7 +19,7 @@ namespace isnd.Data
|
||||
{
|
||||
return groups.Select(group => new NuGet.Packaging.PackageDependencyGroup(
|
||||
new NuGetFramework(group.TargetFramework),
|
||||
group.Dependencies.Select(dep => new PackageDependency(dep.Id))
|
||||
group.Dependencies.Select(dep => new PackageDependency(dep.PackageId))
|
||||
)).ToArray();
|
||||
}
|
||||
}
|
||||
|
535
src/isnd/Migrations/20240422204649_dependenciesReloaded.Designer.cs
generated
Normal file
535
src/isnd/Migrations/20240422204649_dependenciesReloaded.Designer.cs
generated
Normal file
@ -0,0 +1,535 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using isnd.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace isnd.Migrations
|
||||
{
|
||||
[DbContext(typeof(ApplicationDbContext))]
|
||||
[Migration("20240422204649_dependenciesReloaded")]
|
||||
partial class dependenciesReloaded
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "8.0.3")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ConcurrencyStamp")
|
||||
.IsConcurrencyToken()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("NormalizedName")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("NormalizedName")
|
||||
.IsUnique()
|
||||
.HasDatabaseName("RoleNameIndex");
|
||||
|
||||
b.ToTable("AspNetRoles", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("ClaimType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClaimValue")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("RoleId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.ToTable("AspNetRoleClaims", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("ClaimType")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClaimValue")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("AspNetUserClaims", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||
{
|
||||
b.Property<string>("LoginProvider")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ProviderKey")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ProviderDisplayName")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("LoginProvider", "ProviderKey");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("AspNetUserLogins", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
||||
{
|
||||
b.Property<string>("UserId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("RoleId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("UserId", "RoleId");
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.ToTable("AspNetUserRoles", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||
{
|
||||
b.Property<string>("UserId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LoginProvider")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("UserId", "LoginProvider", "Name");
|
||||
|
||||
b.ToTable("AspNetUserTokens", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.ApiKeys.ApiKey", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTimeOffset>("CreationDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("ValidityPeriodInDays")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("ApiKeys");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.ApplicationUser", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("AccessFailedCount")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("ConcurrencyStamp")
|
||||
.IsConcurrencyToken()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<bool>("EmailConfirmed")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("FullName")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("LockoutEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTimeOffset?>("LockoutEnd")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("NormalizedEmail")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("NormalizedUserName")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("PasswordHash")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PhoneNumber")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("PhoneNumberConfirmed")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("SecurityStamp")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("TwoFactorEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("UserName")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("NormalizedEmail")
|
||||
.HasDatabaseName("EmailIndex");
|
||||
|
||||
b.HasIndex("NormalizedUserName")
|
||||
.IsUnique()
|
||||
.HasDatabaseName("UserNameIndex");
|
||||
|
||||
b.ToTable("AspNetUsers", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Dependency", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DependencyGroupId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Exclude")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PackageId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Version")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("DependencyGroupId");
|
||||
|
||||
b.ToTable("Dependencies");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageDependencyGroup", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PackageId")
|
||||
.IsRequired()
|
||||
.HasColumnType("character varying(1024)");
|
||||
|
||||
b.Property<string>("PackageVersionFullString")
|
||||
.IsRequired()
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("TargetFramework")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("PackageId", "PackageVersionFullString");
|
||||
|
||||
b.ToTable("PackageDependencyGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageVersion", b =>
|
||||
{
|
||||
b.Property<string>("PackageId")
|
||||
.HasMaxLength(1024)
|
||||
.HasColumnType("character varying(1024)");
|
||||
|
||||
b.Property<string>("FullString")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<long>("CommitNId")
|
||||
.HasColumnType("bigint");
|
||||
|
||||
b.Property<bool>("IsPrerelease")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<int>("Major")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Minor")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Patch")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Revision")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Type")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.HasKey("PackageId", "FullString");
|
||||
|
||||
b.HasIndex("CommitNId");
|
||||
|
||||
b.ToTable("PackageVersions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Commit", b =>
|
||||
{
|
||||
b.Property<long>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bigint");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
|
||||
|
||||
b.Property<int>("Action")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<DateTimeOffset>("TimeStamp")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Commits");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Package", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasMaxLength(1024)
|
||||
.HasColumnType("character varying(1024)");
|
||||
|
||||
b.Property<long>("CommitNId")
|
||||
.HasColumnType("bigint");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(1024)
|
||||
.HasColumnType("character varying(1024)");
|
||||
|
||||
b.Property<string>("OwnerId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("Public")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CommitNId");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("Packages");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
||||
{
|
||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("RoleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.ApplicationUser", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.ApplicationUser", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
||||
{
|
||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("RoleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("isnd.Data.ApplicationUser", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.ApplicationUser", null)
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.ApiKeys.ApiKey", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.ApplicationUser", "User")
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("User");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Dependency", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.PackageDependencyGroup", "Group")
|
||||
.WithMany("Dependencies")
|
||||
.HasForeignKey("DependencyGroupId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Group");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageDependencyGroup", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.PackageVersion", "PackageVersion")
|
||||
.WithMany("DependencyGroups")
|
||||
.HasForeignKey("PackageId", "PackageVersionFullString")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("PackageVersion");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageVersion", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.Packages.Commit", "LatestCommit")
|
||||
.WithMany("Versions")
|
||||
.HasForeignKey("CommitNId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("isnd.Data.Packages.Package", "Package")
|
||||
.WithMany("Versions")
|
||||
.HasForeignKey("PackageId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("LatestCommit");
|
||||
|
||||
b.Navigation("Package");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Package", b =>
|
||||
{
|
||||
b.HasOne("isnd.Data.Packages.Commit", "LatestCommit")
|
||||
.WithMany()
|
||||
.HasForeignKey("CommitNId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("isnd.Data.ApplicationUser", "Owner")
|
||||
.WithMany()
|
||||
.HasForeignKey("OwnerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("LatestCommit");
|
||||
|
||||
b.Navigation("Owner");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageDependencyGroup", b =>
|
||||
{
|
||||
b.Navigation("Dependencies");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageVersion", b =>
|
||||
{
|
||||
b.Navigation("DependencyGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Commit", b =>
|
||||
{
|
||||
b.Navigation("Versions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Package", b =>
|
||||
{
|
||||
b.Navigation("Versions");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
28
src/isnd/Migrations/20240422204649_dependenciesReloaded.cs
Normal file
28
src/isnd/Migrations/20240422204649_dependenciesReloaded.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace isnd.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class dependenciesReloaded : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "PackageId",
|
||||
table: "Dependencies",
|
||||
type: "text",
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "PackageId",
|
||||
table: "Dependencies");
|
||||
}
|
||||
}
|
||||
}
|
@ -177,7 +177,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("ApiKeys", (string)null);
|
||||
b.ToTable("ApiKeys");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.ApplicationUser", b =>
|
||||
@ -260,6 +260,9 @@ namespace isnd.Migrations
|
||||
b.Property<string>("Exclude")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PackageId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Version")
|
||||
.HasColumnType("text");
|
||||
|
||||
@ -267,7 +270,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasIndex("DependencyGroupId");
|
||||
|
||||
b.ToTable("Dependencies", (string)null);
|
||||
b.ToTable("Dependencies");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageDependencyGroup", b =>
|
||||
@ -292,7 +295,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasIndex("PackageId", "PackageVersionFullString");
|
||||
|
||||
b.ToTable("PackageDependencyGroups", (string)null);
|
||||
b.ToTable("PackageDependencyGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.PackageVersion", b =>
|
||||
@ -331,7 +334,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasIndex("CommitNId");
|
||||
|
||||
b.ToTable("PackageVersions", (string)null);
|
||||
b.ToTable("PackageVersions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Commit", b =>
|
||||
@ -350,7 +353,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Commits", (string)null);
|
||||
b.ToTable("Commits");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("isnd.Data.Packages.Package", b =>
|
||||
@ -379,7 +382,7 @@ namespace isnd.Migrations
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.ToTable("Packages", (string)null);
|
||||
b.ToTable("Packages");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
||||
|
@ -362,8 +362,12 @@ namespace isnd.Services
|
||||
|
||||
string packageDescription = xMeta.Descendants().FirstOrDefault(x => x.Name.LocalName == "description")?.Value;
|
||||
|
||||
var frameWorks = xMeta
|
||||
.Descendants().FirstOrDefault(x => x.Name.LocalName == "frameworkReferences")
|
||||
var dependencies = xMeta
|
||||
.Descendants().FirstOrDefault(x => x.Name.LocalName == "dependencies");
|
||||
var frameworkReferences= xMeta
|
||||
.Descendants().FirstOrDefault(x => x.Name.LocalName == "frameworkReferences");
|
||||
|
||||
var frameWorks = (dependencies ?? frameworkReferences)
|
||||
.Descendants().Where(x => x.Name.LocalName == "group")
|
||||
.Select(x => NewFrameworkDependencyGroup(x)).ToArray();
|
||||
var types = "Package";
|
||||
@ -467,10 +471,11 @@ namespace isnd.Services
|
||||
Dependencies = framework.Dependencies.Select(
|
||||
d => new Dependency
|
||||
{
|
||||
Id = d.PackageId,
|
||||
PackageId = d.PackageId,
|
||||
Version = d.PackageVersion,
|
||||
}).ToList()
|
||||
};
|
||||
|
||||
version.DependencyGroups.Add(group);
|
||||
dbContext.PackageDependencyGroups.Add(group);
|
||||
|
||||
@ -510,14 +515,16 @@ namespace isnd.Services
|
||||
var view = x.ToJson();
|
||||
var frameworkReferences = x.Descendants();
|
||||
var framework = x.Attribute("targetFramework").Value;
|
||||
var deps = frameworkReferences.Select(r => new ShortDependencyInfo
|
||||
{
|
||||
PackageId = (r.Attribute("name") ?? r.Attribute("id")).Value,
|
||||
PackageVersion = r.Attribute("version")?.Value
|
||||
});
|
||||
|
||||
return new FrameworkDependencyGroup
|
||||
{
|
||||
FrameworkName = framework,
|
||||
Dependencies = frameworkReferences.Select(r => new ShortDependencyInfo
|
||||
{
|
||||
PackageId = r.Attribute("name").Value,
|
||||
PackageVersion = r.Attribute("version")?.Value
|
||||
}).ToList()
|
||||
Dependencies = deps.ToList()
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -159,7 +159,7 @@ namespace isnd.host.tests
|
||||
SearchFilter searchFilter = new SearchFilter(includePrerelease: true);
|
||||
|
||||
IEnumerable<IPackageSearchMetadata> results = await resource.SearchAsync(
|
||||
"isnd",
|
||||
"isn.abst",
|
||||
searchFilter,
|
||||
skip: 0,
|
||||
take: 20,
|
||||
@ -181,7 +181,7 @@ namespace isnd.host.tests
|
||||
PackageUpdateResource pushRes = await repository.GetResourceAsync<PackageUpdateResource>();
|
||||
SymbolPackageUpdateResourceV3 symbolPackageResource = await repository.GetResourceAsync<SymbolPackageUpdateResourceV3>();
|
||||
|
||||
await pushRes.Push(new List<string>{ "../../../../../src/isnd/bin/Release/isnd.1.1.4.nupkg" }, null,
|
||||
await pushRes.Push(new List<string>{ "../../../../../src/isn.abst/bin/Release/isn.abst.1.0.1.nupkg" }, null,
|
||||
5000, false, GetApiKey, GetSymbolsApiKey, false, false, symbolPackageResource, logger);
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user