{"id":23602660,"url":"https://github.com/g4-api/g4-api-client","last_synced_at":"2026-04-01T21:59:18.126Z","repository":{"id":269541368,"uuid":"907492833","full_name":"g4-api/g4-api-client","owner":"g4-api","description":"G4.Api.Client is the official client library for the G4™ Engine, offering seamless access to automation, environment management, integrations, and template operations. the intuitive interfaces helps developers to quickly build, run, and manage complex workflows while accessing robust plugin capabilities and metadata all within a unified ecosystem.","archived":false,"fork":false,"pushed_at":"2026-03-21T16:44:37.000Z","size":19063,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-22T06:51:48.573Z","etag":null,"topics":["automation","client-library","csharp","dotnet","g4-engine","integration","litedb","metadata","plugins","rpa","sdk","template-management","testing","workflow"],"latest_commit_sha":null,"homepage":"https://github.com/g4-api/g4-api-client","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/g4-api.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-23T17:50:34.000Z","updated_at":"2026-03-21T16:42:58.000Z","dependencies_parsed_at":"2025-05-17T19:41:20.362Z","dependency_job_id":"bb31dfbd-de88-422e-8f2c-197760d8e0e9","html_url":"https://github.com/g4-api/g4-api-client","commit_stats":null,"previous_names":["g4-api/g4-api-client"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/g4-api/g4-api-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4-api%2Fg4-api-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4-api%2Fg4-api-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4-api%2Fg4-api-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4-api%2Fg4-api-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/g4-api","download_url":"https://codeload.github.com/g4-api/g4-api-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4-api%2Fg4-api-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","client-library","csharp","dotnet","g4-engine","integration","litedb","metadata","plugins","rpa","sdk","template-management","testing","workflow"],"created_at":"2024-12-27T12:12:14.065Z","updated_at":"2026-04-01T21:59:18.119Z","avatar_url":"https://github.com/g4-api.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# G4.Api\n\n[![NuGet](https://img.shields.io/nuget/v/g4.api?logo=nuget\u0026logoColor=959da5\u0026label=NuGet\u0026labelColor=24292f)](https://www.nuget.org/packages/g4.Api)\n[![Build, Test \u0026 Release](https://github.com/g4-api/g4-api-client/actions/workflows/release-pipeline.yml/badge.svg)](https://github.com/g4-api/g4-api-client/actions/workflows/release-pipeline.yml)  \n  \n**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.\n\n---\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Basic Usage](#basic-usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Features\n\n1. **Automation Management**  \n   - Invoking, tracking, and customizing automated workflows.  \n   - Handling job, rule, and stage-level events and callbacks.\n\n2. **Environments Management**  \n   - Creating, deleting, and updating environment-specific parameters.  \n   - Decoding and encoding parameters for secure storage and retrieval.\n\n3. **Integrations**  \n   - Centralized management of external repositories and plugin metadata.  \n   - Cached retrieval of plugin documents, manifests, and other artifacts.\n\n4. **Templates**  \n   - Adding and removing plugin templates for reuse in automation scenarios.  \n   - Maintaining a dedicated LiteDB collection for template management.\n\n---\n\n## Installation\n\nYou can install **G4.Api** via NuGet:\n\n```bash\n# For latest version, visit: https://www.nuget.org/packages/G4.Api\n\ndotnet add package G4.Api --version \u003cLatestVersion\u003e\n\n# Or, if you prefer the latest version:\n\ndotnet add package G4.Api\n```\n\nOr by adding it directly in your `.csproj` file:\n\n```xml\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cItemGroup\u003e\n    \u003cPackageReference Include=\"G4.Api\" Version=\"\u003cLatestVersion\u003e\" /\u003e\n  \u003c/ItemGroup\u003e\n\u003c/Project\u003e\n```\n\n---\n\n## Getting Started\n\n1. **Reference the Library**  \n   Add a reference to `G4.Api` in your .NET project. Ensure you have at least .NET 6 or higher (the library targets .NET 8.0).\n\n2. **Create and Configure a G4Client**  \n   ```csharp\n   using G4.Api;\n\n   var g4Client = new G4Client();\n   ```\n\n3. **Explore Clients**  \n   - **Automation**: `g4Client.Automation`  \n   - **Environments**: `g4Client.Environments`  \n   - **Integration**: `g4Client.Integration`  \n   - **Templates**: `g4Client.Templates`  \n\n4. **Start Automating!**  \n   - Create or fetch environment parameters.  \n   - Add or remove plugin templates.  \n   - Invoke automations and handle events such as `RuleInvoking`, `JobInvoked`, and more.\n\n---\n\n## Basic Usage\n\nBelow is a simplified example demonstrating how you might use **G4.Api** to work with an environment parameter and trigger an automation:\n\n```csharp\nusing G4.Api;\nusing Microsoft.Extensions.Logging;\n\n// 1. Create the client\nvar loggerFactory = LoggerFactory.Create(builder =\u003e builder.AddConsole());\nvar logger = loggerFactory.CreateLogger(\"G4Logger\");\nvar g4Client = new G4Client(logger);\n\n// 2. Update environment parameters\nvar parameters = new Dictionary\u003cstring, string\u003e\n{\n    { \"ApiKey\", \"MY_SECRET_KEY\" },\n    { \"Region\", \"us-east-1\" }\n};\ng4Client.Environments.SetEnvironment(\"ProductionEnv\", parameters, encode: true);\n\n// 3. Retrieve a parameter (decoded)\nvar apiKey = g4Client.Environments.GetParameter(\"ProductionEnv\", \"ApiKey\", decode: true);\nConsole.WriteLine($\"Decoded API Key: {apiKey}\");\n\n// 4. Invoke an automation\n// (Assume we have a G4AutomationModel with tasks defined)\nvar automationModel = new G4AutomationModel { /* ... configuration ... */ };\nvar results = g4Client.Automation.Invoke(automationModel);\n\nforeach (var result in results)\n{\n    Console.WriteLine($\"Automation Group: {result.Key}, Status: {result.Value.Status}\");\n}\n```\n\n\u003e **Note:** This snippet is purely illustrative and may be modified to fit real-world scenarios.\n\n---\n\n## Contributing\n\n1. **Fork** this repository and clone your fork.  \n2. Create a **feature branch** (e.g., `feature/awesome-new-feature`).  \n3. **Commit** your changes and push them to your fork.  \n4. Open a **Pull Request** against the `main` branch of this repository.  \n\nWe 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.\n\n---\n\n## License\n\nThis project is licensed under the [Apache License 2.0](LICENSE). By contributing to **G4.Api**, you agree that your contributions will be licensed under its Apache 2.0 License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg4-api%2Fg4-api-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fg4-api%2Fg4-api-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg4-api%2Fg4-api-client/lists"}