Soenneker.GitHub.Repositories.Rulesets
4.0.1704
Prefix Reserved
dotnet add package Soenneker.GitHub.Repositories.Rulesets --version 4.0.1704
NuGet\Install-Package Soenneker.GitHub.Repositories.Rulesets -Version 4.0.1704
<PackageReference Include="Soenneker.GitHub.Repositories.Rulesets" Version="4.0.1704" />
<PackageVersion Include="Soenneker.GitHub.Repositories.Rulesets" Version="4.0.1704" />
<PackageReference Include="Soenneker.GitHub.Repositories.Rulesets" />
paket add Soenneker.GitHub.Repositories.Rulesets --version 4.0.1704
#r "nuget: Soenneker.GitHub.Repositories.Rulesets, 4.0.1704"
#:package Soenneker.GitHub.Repositories.Rulesets@4.0.1704
#addin nuget:?package=Soenneker.GitHub.Repositories.Rulesets&version=4.0.1704
#tool nuget:?package=Soenneker.GitHub.Repositories.Rulesets&version=4.0.1704
Soenneker.GitHub.Repositories.Rulesets
Create, inspect, and remove repository-level GitHub rulesets for branches, tags, or pushes.
Installation
dotnet add package Soenneker.GitHub.Repositories.Rulesets
Configuration
{
"GH": {
"Token": "github-token"
}
}
The token needs repository administration permission to create or delete rulesets.
Registration
services.AddGitHubRepositoriesRulesetsUtilAsSingleton();
Use AddGitHubRepositoriesRulesetsUtilAsScoped() for a scoped consumer.
Create a ruleset
var ruleset = new RepositoryRuleset
{
Name = "Protect main",
Target = TargetEnum.Branch,
Enforcement = EnforcementEnum.Active,
Conditions = new Conditions
{
RefName = new RefNameCondition
{
Include = ["refs/heads/main"]
}
},
Rules =
[
new Rule { Type = "deletion" },
new Rule { Type = "non_fast_forward" }
]
};
await rulesets.Add(
"soenneker",
"example-repository",
ruleset,
cancellationToken);
RepositoryRuleset maps directly to GitHub's ruleset request shape. Rule types and their Parameters must be valid for the selected target.
List or delete rulesets
List<RepositoryRuleset> existing = await rulesets.GetAll(
"soenneker",
"example-repository",
cancellationToken);
await rulesets.Delete(
"soenneker",
"example-repository",
rulesetId,
cancellationToken);
GetAll follows pagination and returns all visible repository rulesets. DeleteAll permanently removes every ruleset returned for the repository; it does not preserve or recreate their policies.
| 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
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.13)
- Newtonsoft.Json (>= 13.0.4)
- Soenneker.Extensions.HttpResponseMessage (>= 4.0.2612)
- Soenneker.Extensions.Object (>= 4.0.4419)
- Soenneker.Extensions.Task (>= 4.0.140)
- Soenneker.Extensions.ValueTask (>= 4.0.133)
- Soenneker.GitHub.Client.Http (>= 4.0.1528)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Soenneker.GitHub.Repositories.Rulesets:
| Package | Downloads |
|---|---|
|
Soenneker.GitHub.Repositories.Suite
Registers commonly used Soenneker GitHub repository services through one package |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.1704 | 414 | 10/15/2026 |
| 4.0.1703 | 83 | 10/15/2026 |
| 4.0.1702 | 94 | 10/15/2026 |
| 4.0.1701 | 120 | 10/15/2026 |
| 4.0.1700 | 153 | 10/15/2026 |
| 4.0.1699 | 86 | 10/15/2026 |
| 4.0.1698 | 123 | 10/14/2026 |
| 4.0.1697 | 97 | 10/14/2026 |
| 4.0.1696 | 117 | 10/14/2026 |
| 4.0.1693 | 86 | 10/14/2026 |
| 4.0.1692 | 85 | 10/14/2026 |
| 4.0.1686 | 97 | 10/13/2026 |
| 4.0.1684 | 86 | 10/13/2026 |
| 4.0.1682 | 98 | 10/13/2026 |
| 4.0.1677 | 177 | 10/12/2026 |
| 4.0.1676 | 94 | 10/12/2026 |
| 4.0.1675 | 123 | 10/11/2026 |
| 4.0.1674 | 98 | 10/11/2026 |
| 4.0.1673 | 142 | 10/11/2026 |
| 4.0.1671 | 230 | 10/9/2026 |
Updated Soenneker.Extensions.Object to 4.0.4419