Soenneker.GitHub.Repositories.Rulesets
4.0.1666
Prefix Reserved
dotnet add package Soenneker.GitHub.Repositories.Rulesets --version 4.0.1666
NuGet\Install-Package Soenneker.GitHub.Repositories.Rulesets -Version 4.0.1666
<PackageReference Include="Soenneker.GitHub.Repositories.Rulesets" Version="4.0.1666" />
<PackageVersion Include="Soenneker.GitHub.Repositories.Rulesets" Version="4.0.1666" />
<PackageReference Include="Soenneker.GitHub.Repositories.Rulesets" />
paket add Soenneker.GitHub.Repositories.Rulesets --version 4.0.1666
#r "nuget: Soenneker.GitHub.Repositories.Rulesets, 4.0.1666"
#:package Soenneker.GitHub.Repositories.Rulesets@4.0.1666
#addin nuget:?package=Soenneker.GitHub.Repositories.Rulesets&version=4.0.1666
#tool nuget:?package=Soenneker.GitHub.Repositories.Rulesets&version=4.0.1666
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.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Newtonsoft.Json (>= 13.0.4)
- Soenneker.Extensions.HttpResponseMessage (>= 4.0.2557)
- Soenneker.Extensions.Object (>= 4.0.4389)
- Soenneker.Extensions.Task (>= 4.0.131)
- Soenneker.Extensions.ValueTask (>= 4.0.124)
- Soenneker.GitHub.Client.Http (>= 4.0.1494)
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.1666 | 32 | 9/30/2026 |
| 4.0.1665 | 28 | 9/30/2026 |
| 4.0.1664 | 61 | 9/29/2026 |
| 4.0.1663 | 34 | 9/29/2026 |
| 4.0.1662 | 29 | 9/29/2026 |
| 4.0.1661 | 42 | 9/29/2026 |
| 4.0.1660 | 130 | 9/28/2026 |
| 4.0.1659 | 117 | 9/26/2026 |
| 4.0.1657 | 90 | 9/26/2026 |
| 4.0.1656 | 88 | 9/26/2026 |
| 4.0.1651 | 172 | 9/24/2026 |
| 4.0.1649 | 86 | 9/24/2026 |
| 4.0.1648 | 85 | 9/24/2026 |
| 4.0.1647 | 84 | 9/24/2026 |
| 4.0.1646 | 116 | 9/24/2026 |
| 4.0.1645 | 97 | 9/24/2026 |
| 4.0.1644 | 85 | 9/24/2026 |
| 4.0.1643 | 396 | 9/18/2026 |
| 4.0.1642 | 162 | 9/17/2026 |
| 4.0.1641 | 94 | 9/17/2026 |
Update dependency Soenneker.Extensions.HttpResponseMessage to 4.0.2557 (#2196)