Garrard.GitLab
0.0.1
See the version list below for details.
dotnet add package Garrard.GitLab --version 0.0.1
NuGet\Install-Package Garrard.GitLab -Version 0.0.1
<PackageReference Include="Garrard.GitLab" Version="0.0.1" />
<PackageVersion Include="Garrard.GitLab" Version="0.0.1" />
<PackageReference Include="Garrard.GitLab" />
paket add Garrard.GitLab --version 0.0.1
#r "nuget: Garrard.GitLab, 0.0.1"
#:package Garrard.GitLab@0.0.1
#addin nuget:?package=Garrard.GitLab&version=0.0.1
#tool nuget:?package=Garrard.GitLab&version=0.0.1
Garrard.AzureLib
Garrard.AzureLib is a .NET library that provides operations for working with Azure resources.
Installation
To install Garrard.AzureLib, you can use the NuGet package manager. Run the following command in the Package Manager Console:
Install-Package Garrard.AzureLib -Version 0.0.1
Or add the following package reference to your project file:
<PackageReference Include="Garrard.AzureLib" Version="0.0.1" />
Or use the dotnet add command:
dotnet add package Garrard.AzureLib --version 0.0.1
Usage
Here is an example of how to use Garrard.AzureLib in your project:
using Garrard.AzureLib;
class Program
{
static async Task Main(string[] args)
{
await Helpers.CheckAndInstallDependencies(Console.WriteLine);
var credentialsResult = await EntraIDOperations.ObtainAzureCredentials(Console.WriteLine);
if (credentialsResult.IsFailure)
{
Console.WriteLine(credentialsResult.Error);
return;
}
var (subscriptionId, tenantId, billingAccountId, enrollmentAccountId, spnName) = credentialsResult.Value;
string groupName = "example-group";
string scope = "/";
Result<string> clientIdResult = await EntraIDOperations.GetClientId(spnName, Console.WriteLine);
if (clientIdResult.IsFailure)
{
Console.WriteLine(clientIdResult.Error);
return;
}
string clientId = clientIdResult.Value;
await EntraIDOperations.AssignSubscriptionCreatorRole(clientId, Console.WriteLine);
await EntraIDOperations.CreateGroup(groupName, Console.WriteLine);
await EntraIDOperations.AddSpToGroup(spnName, groupName, clientId, Console.WriteLine);
await EntraIDOperations.AssignOwnerRoleToGroup(groupName, clientId, scope, Console.WriteLine);
var apiPermissionsResult = await EntraIDOperations.AddApiPermissions(clientId, Console.WriteLine);
if (apiPermissionsResult.IsFailure)
{
Console.WriteLine(apiPermissionsResult.Error);
return;
}
}
}
Features
- Check and install dependencies
- Obtain Azure credentials
- Get client ID
- Assign Subscription Creator Role to Service Principal (Required for EA and Subscription Vending)
- Your User Security Principal first needs to be assinged as Billing Administrator for your Tenant.
- Create an EntraID Group
- Add Service Principal to a EntraID Group
- Assign Owner Role to EntraID Group
- Assign a Role to an EntraID Group
- Add API permissions
- Grant Admin Consent to Service Principal
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. |
-
net9.0
- CSharpFunctionalExtensions (>= 3.5.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.21 | 443 | 10/25/2025 |
| 0.0.20 | 331 | 3/29/2025 |
| 0.0.19 | 211 | 3/27/2025 |
| 0.0.18 | 518 | 3/26/2025 |
| 0.0.17 | 212 | 3/19/2025 |
| 0.0.16 | 200 | 3/18/2025 |
| 0.0.15 | 245 | 3/7/2025 |
| 0.0.14 | 273 | 3/5/2025 |
| 0.0.13 | 246 | 3/5/2025 |
| 0.0.12 | 351 | 3/3/2025 |
| 0.0.11 | 195 | 3/3/2025 |
| 0.0.10 | 164 | 3/2/2025 |
| 0.0.9 | 148 | 3/2/2025 |
| 0.0.8 | 159 | 3/2/2025 |
| 0.0.7 | 135 | 3/2/2025 |
| 0.0.1 | 177 | 3/8/2025 |
Please refer to the README