SeliseBlocks.ReleaseDriver.OS
4.0.5
dotnet add package SeliseBlocks.ReleaseDriver.OS --version 4.0.5
NuGet\Install-Package SeliseBlocks.ReleaseDriver.OS -Version 4.0.5
<PackageReference Include="SeliseBlocks.ReleaseDriver.OS" Version="4.0.5" />
<PackageVersion Include="SeliseBlocks.ReleaseDriver.OS" Version="4.0.5" />
<PackageReference Include="SeliseBlocks.ReleaseDriver.OS" />
paket add SeliseBlocks.ReleaseDriver.OS --version 4.0.5
#r "nuget: SeliseBlocks.ReleaseDriver.OS, 4.0.5"
#:package SeliseBlocks.ReleaseDriver.OS@4.0.5
#addin nuget:?package=SeliseBlocks.ReleaseDriver.OS&version=4.0.5
#tool nuget:?package=SeliseBlocks.ReleaseDriver.OS&version=4.0.5
SeliseBlocks.ReleaseDriver.OS
A NuGet package that exposes release and repository management operations for Blocks-based applications.
Installation
dotnet add package SeliseBlocks.ReleaseDriver.OS
Registration
Secrets are loaded from the vault, then the domain services and the driver are registered:
await builder.Services.RegisterBlocksReleaseServicesAsync();
// or, to read from a non-Azure vault (defaults to VaultType.Azure)
await builder.Services.RegisterBlocksReleaseServicesAsync(VaultType.OnPrem);
Usage
Inject IReleaseDriverService and call any of the available methods:
public class MyService
{
private readonly IReleaseDriverService _release;
public MyService(IReleaseDriverService release)
{
_release = release;
}
}
Available Operations
| Method | Description |
|---|---|
IsAuthorizeAsync() |
Checks whether the current user has a valid access token |
GetAccessTokenAsync(code) |
Exchanges an OAuth authorization code for an access token |
RemoveAuthorizationAsync() |
Revokes the current user's OAuth access from the provider |
DeleteAuthorizationAsync() |
Deletes the stored access token for the current user |
GetReposListAsync() |
Retrieves the repository list; archived repositories are excluded |
GetRepoDetailsAsync(repoId, branch, pageNumber, pageSize) |
Retrieves a repository with its paged build history |
GetReportsAsync(buildId, type) |
Retrieves test and analysis reports produced by a build |
GetUserAsync() |
Retrieves the authenticated GitHub user |
SearchRepositoriesAsync(search, pageNumber, pageSize) |
Searches the authenticated user's GitHub repositories |
GetBranchesAsync(repo) |
Retrieves the branches for the specified GitHub repository |
GithubBranchExistsAsync(repoId) |
Checks whether the configured branch exists for the given repository |
UpdateRepoDomainAsync(request) |
Updates the custom deployment domains for the given repositories |
Migrating from 4.x
4.x shipped these types under the DeploymentDriver name. 5.0.0 renames them to match the
package id. The rename is the only change — every method behaves exactly as it did in 4.x.
| 4.x | 5.0.0 |
|---|---|
namespace DeploymentDriver |
namespace ReleaseDriver |
IDeploymentDriverService |
IReleaseDriverService |
DeploymentDriverService |
ReleaseDriverService |
RegisterBlocksDeploymentServicesAsync() |
RegisterBlocksReleaseServicesAsync() |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FluentValidation (>= 12.0.0)
- KubernetesClient (>= 17.0.14)
- Microsoft.Extensions.Hosting (>= 9.0.2)
- MongoDB.Driver (>= 3.8.0)
- Newtonsoft.Json (>= 13.0.3)
- SeliseBlocks.Genesis.OS (>= 4.3.11)
- SeliseBlocks.Secrets.OS (>= 4.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Requires SeliseBlocks.Genesis.OS 4.3.11 or later. The release entity classes (Repo, Build, RepositoryWebhook, DependencyTrackProjects, HostingProvider, Region, MachineConfig, DeploySettings, BuildEventResponse, GithubWebhook, Config, RepoProject) now come from Genesis in Blocks.Genesis.Entities.Release; the copies in the bundled Devops.DomainService assembly are removed, so a host that used them must switch to the Genesis namespace. Stored documents keep the same collections and field names. Reads and writes of Repos, Builds and RepositoryWebhooks go through the Genesis data access resolver (row filter, projection, View column rules, Repo schema validation rules and defaults, and on insert the requester added to Read, Update and Delete UserIds); it is skipped without a signed-in user or when the call targets another tenant's database, and a refusing rule surfaces as DataValidationException. RegisterBlocksReleaseServicesAsync now calls AddBlocksDataAccess(), which is not idempotent: a host that also calls it gets the registrations twice (the last one wins; both use the default options). The Dependency-Track project mapping is kept in the Genesis key-value store under dependency-track-project:{tenantId}, falling back to the old DependencyTrackProjects collection on read, so the host must provide IKeyValueStore (ApplicationConfigurations.ConfigureServices registers it). Built-in notifications are sent for build, deployment, repo secret and GitHub events. Switching a repository between Manual and Auto now saves the GitHub webhook's active state and reports whether the switch succeeded; existing repositories are corrected on their next switch.