G4.Api is the official client library for the G4™ Engine, providing seamless access to automation, environments, integrations, and templates management. Through its intuitive interfaces, you can quickly leverage the robust features of G4 to build, run, and manage automation workflows, environment parameters, and plugin integrations.
-
Automation Management
- Invoking, tracking, and customizing automated workflows.
- Handling job, rule, and stage-level events and callbacks.
-
Environments Management
- Creating, deleting, and updating environment-specific parameters.
- Decoding and encoding parameters for secure storage and retrieval.
-
Integrations
- Centralized management of external repositories and plugin metadata.
- Cached retrieval of plugin documents, manifests, and other artifacts.
-
Templates
- Adding and removing plugin templates for reuse in automation scenarios.
- Maintaining a dedicated LiteDB collection for template management.
You can install G4.Api via NuGet:
# For latest version, visit: https://www.nuget.org/packages/G4.Api
dotnet add package G4.Api --version <LatestVersion>
# Or, if you prefer the latest version:
dotnet add package G4.Api
Or by adding it directly in your .csproj
file:
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="G4.Api" Version="<LatestVersion>" />
</ItemGroup>
</Project>
-
Reference the Library
Add a reference toG4.Api
in your .NET project. Ensure you have at least .NET 6 or higher (the library targets .NET 8.0). -
Create and Configure a G4Client
using G4.Api; var g4Client = new G4Client();
-
Explore Clients
- Automation:
g4Client.Automation
- Environments:
g4Client.Environments
- Integration:
g4Client.Integration
- Templates:
g4Client.Templates
- Automation:
-
Start Automating!
- Create or fetch environment parameters.
- Add or remove plugin templates.
- Invoke automations and handle events such as
RuleInvoking
,JobInvoked
, and more.
Below is a simplified example demonstrating how you might use G4.Api to work with an environment parameter and trigger an automation:
using G4.Api;
using Microsoft.Extensions.Logging;
// 1. Create the client
var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
var logger = loggerFactory.CreateLogger("G4Logger");
var g4Client = new G4Client(logger);
// 2. Update environment parameters
var parameters = new Dictionary<string, string>
{
{ "ApiKey", "MY_SECRET_KEY" },
{ "Region", "us-east-1" }
};
g4Client.Environments.SetEnvironment("ProductionEnv", parameters, encode: true);
// 3. Retrieve a parameter (decoded)
var apiKey = g4Client.Environments.GetParameter("ProductionEnv", "ApiKey", decode: true);
Console.WriteLine($"Decoded API Key: {apiKey}");
// 4. Invoke an automation
// (Assume we have a G4AutomationModel with tasks defined)
var automationModel = new G4AutomationModel { /* ... configuration ... */ };
var results = g4Client.Automation.Invoke(automationModel);
foreach (var result in results)
{
Console.WriteLine($"Automation Group: {result.Key}, Status: {result.Value.Status}");
}
Note: This snippet is purely illustrative and may be modified to fit real-world scenarios.
- Fork this repository and clone your fork.
- Create a feature branch (e.g.,
feature/awesome-new-feature
). - Commit your changes and push them to your fork.
- Open a Pull Request against the
main
branch of this repository.
We welcome contributions of all types - bug reports, fixes, new features, documentation updates, etc. Please make sure to follow the project's code style and standards.
This project is licensed under the Apache License 2.0. By contributing to G4.Api, you agree that your contributions will be licensed under its Apache 2.0 License.