CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions 0.1.0-preview.6

This is a prerelease version of CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions.
dotnet add package CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions --version 0.1.0-preview.6
                    
NuGet\Install-Package CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions -Version 0.1.0-preview.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions" Version="0.1.0-preview.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions" Version="0.1.0-preview.6" />
                    
Directory.Packages.props
<PackageReference Include="CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions --version 0.1.0-preview.6
                    
#r "nuget: CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions, 0.1.0-preview.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions@0.1.0-preview.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions&version=0.1.0-preview.6&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions&version=0.1.0-preview.6&prerelease
                    
Install as a Cake Tool

Mc3Po.SourceControl.Abstractions

Interfaces and models for source control operations.

Core Interfaces

ISourceControlService

public interface ISourceControlService
{
    // Repositories
    Task<IGenericResult<RepositoryInfo>> GetRepository(string repositoryId, CancellationToken ct = default);
    Task<IGenericResult<IReadOnlyList<RepositoryInfo>>> ListRepositories(ListRepositoriesRequest request, CancellationToken ct = default);

    // Branches
    Task<IGenericResult<BranchInfo>> CreateBranch(string repositoryId, string branchName, string fromRef, CancellationToken ct = default);
    Task<IGenericResult<IReadOnlyList<BranchInfo>>> ListBranches(string repositoryId, CancellationToken ct = default);

    // Pull Requests / Merge Requests
    Task<IGenericResult<PullRequestInfo>> CreatePullRequest(CreatePullRequestRequest request, CancellationToken ct = default);
    Task<IGenericResult<PullRequestInfo>> GetPullRequest(string repositoryId, string pullRequestId, CancellationToken ct = default);
    Task<IGenericResult<IReadOnlyList<PullRequestInfo>>> ListPullRequests(string repositoryId, PullRequestState? state = null, CancellationToken ct = default);
    Task<IGenericResult<PullRequestInfo>> MergePullRequest(string repositoryId, string pullRequestId, MergeOptions? options = null, CancellationToken ct = default);

    // Pipelines / Builds
    Task<IGenericResult<PipelineInfo>> GetPipeline(string repositoryId, string pipelineId, CancellationToken ct = default);
    Task<IGenericResult<IReadOnlyList<PipelineInfo>>> ListPipelines(string repositoryId, CancellationToken ct = default);

    // Commits
    Task<IGenericResult<IReadOnlyList<CommitInfo>>> ListCommits(string repositoryId, string? branch = null, int? limit = null, CancellationToken ct = default);
}

Models

RepositoryInfo

public class RepositoryInfo
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string? FullPath { get; set; }
    public string? Description { get; set; }
    public string? DefaultBranch { get; set; }
    public string? CloneUrlHttps { get; set; }
    public string? CloneUrlSsh { get; set; }
    public string? WebUrl { get; set; }
}

BranchInfo

public class BranchInfo
{
    public string Name { get; set; }
    public string? CommitSha { get; set; }
    public bool IsDefault { get; set; }
    public bool IsProtected { get; set; }
}

PullRequestInfo

public class PullRequestInfo
{
    public string Id { get; set; }
    public int Number { get; set; }
    public string Title { get; set; }
    public string? Description { get; set; }
    public string SourceBranch { get; set; }
    public string TargetBranch { get; set; }
    public PullRequestState State { get; set; }
    public string? AuthorUsername { get; set; }
    public bool IsDraft { get; set; }
    public bool IsMergeable { get; set; }
    public string? WebUrl { get; set; }
    public DateTimeOffset? CreatedAt { get; set; }
    public DateTimeOffset? UpdatedAt { get; set; }
    public DateTimeOffset? MergedAt { get; set; }
}

PipelineInfo

public class PipelineInfo
{
    public string Id { get; set; }
    public int? Number { get; set; }
    public string? CommitSha { get; set; }
    public string? Ref { get; set; }
    public PipelineStatus Status { get; set; }
    public string? WebUrl { get; set; }
    public DateTimeOffset? CreatedAt { get; set; }
    public DateTimeOffset? StartedAt { get; set; }
    public DateTimeOffset? FinishedAt { get; set; }
}

CommitInfo

public class CommitInfo
{
    public string Sha { get; set; }
    public string ShortSha { get; set; }
    public string Message { get; set; }
    public string? AuthorName { get; set; }
    public string? AuthorEmail { get; set; }
    public DateTimeOffset? CommittedAt { get; set; }
    public string? WebUrl { get; set; }
}

Enums

PullRequestState

public enum PullRequestState
{
    Open,
    Closed,
    Merged
}

PipelineStatus

public enum PipelineStatus
{
    Pending,
    Running,
    Success,
    Failed,
    Cancelled
}

MergeMethod

public enum MergeMethod
{
    Merge,
    Squash,
    Rebase
}

Request Models

CreatePullRequestRequest

public class CreatePullRequestRequest
{
    public string RepositoryId { get; set; }
    public string SourceBranch { get; set; }
    public string TargetBranch { get; set; }
    public string Title { get; set; }
    public string? Description { get; set; }
    public bool IsDraft { get; set; }
}

MergeOptions

public class MergeOptions
{
    public MergeMethod Method { get; set; }
    public bool Squash { get; set; }
    public bool DeleteSourceBranch { get; set; }
    public string? CommitMessage { get; set; }
}

Dependencies

  • FractalDataWorks.Results
  • Microsoft.Extensions.Logging.Abstractions

Usage

This package is referenced by:

  • Protocol implementations (GitLab, GitHub, Azure DevOps)
  • Tools that need SC capabilities
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on CyberdyneDevelopment.Mc3Po.SourceControl.Abstractions:

Package Downloads
CyberdyneDevelopment.Mc3Po.Protocols.Abstractions

Protocol abstractions for mc3-po - interfaces for project management and source control protocols

CyberdyneDevelopment.Mc3Po.Protocols.GitHub

Development tools and utilities for the FractalDataWorks ecosystem. Build:

CyberdyneDevelopment.Mc3Po.Protocols.GitLab

GitLab protocol implementation for mc3-po - source control and project management integration

CyberdyneDevelopment.Mc3Po.Protocols.AzureDevOps

Development tools and utilities for the FractalDataWorks ecosystem. Build:

CyberdyneDevelopment.DeveloperTools.SourceControl

Source control tool wrappers for FractalDataWorks. Provides thin command wrappers that delegate to external MCP servers (GitLab).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.6 64 1/9/2026
0.1.0-preview.4 78 1/7/2026