{"id":21262285,"url":"https://github.com/frasermolyneux/portal-bots","last_synced_at":"2026-04-13T05:40:04.945Z","repository":{"id":236623709,"uuid":"739892613","full_name":"frasermolyneux/portal-bots","owner":"frasermolyneux","description":"Part of XtremeIdiots Portal solution; b3 bots config and instance management. Deployed using Terraform/PowerShell and GitHub Actions/Azure DevOps Pipelines.","archived":false,"fork":false,"pushed_at":"2025-03-12T17:10:39.000Z","size":8799,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-12T18:24:47.250Z","etag":null,"topics":["app-registration","azure","azure-pipelines","github-actions","key-vault","powershell","terraform"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frasermolyneux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-01-06T21:29:23.000Z","updated_at":"2025-03-12T17:10:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"02fb56a4-6e0d-466d-baba-9717b8abfa16","html_url":"https://github.com/frasermolyneux/portal-bots","commit_stats":null,"previous_names":["frasermolyneux/portal-bots"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frasermolyneux%2Fportal-bots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frasermolyneux%2Fportal-bots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frasermolyneux%2Fportal-bots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frasermolyneux%2Fportal-bots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frasermolyneux","download_url":"https://codeload.github.com/frasermolyneux/portal-bots/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243701314,"owners_count":20333616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["app-registration","azure","azure-pipelines","github-actions","key-vault","powershell","terraform"],"created_at":"2024-11-21T04:58:05.415Z","updated_at":"2026-04-13T05:40:04.906Z","avatar_url":"https://github.com/frasermolyneux.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XtremeIdiots Portal - Bots\n\n[![Build and Test](https://github.com/frasermolyneux/portal-bots/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/build-and-test.yml)\n[![Code Quality](https://github.com/frasermolyneux/portal-bots/actions/workflows/codequality.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/codequality.yml)\n[![Copilot Setup Steps](https://github.com/frasermolyneux/portal-bots/actions/workflows/copilot-setup-steps.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/copilot-setup-steps.yml)\n[![Dependabot Auto-Merge](https://github.com/frasermolyneux/portal-bots/actions/workflows/dependabot-automerge.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/dependabot-automerge.yml)\n[![Deploy Dev](https://github.com/frasermolyneux/portal-bots/actions/workflows/deploy-dev.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/deploy-dev.yml)\n[![Deploy Prd](https://github.com/frasermolyneux/portal-bots/actions/workflows/deploy-prd.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/deploy-prd.yml)\n[![Destroy Environment](https://github.com/frasermolyneux/portal-bots/actions/workflows/destroy-environment.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/destroy-environment.yml)\n[![PR Verify](https://github.com/frasermolyneux/portal-bots/actions/workflows/pr-verify.yml/badge.svg)](https://github.com/frasermolyneux/portal-bots/actions/workflows/pr-verify.yml)\n\n## Documentation\n\n- [B3 Events Documentation](docs/b3-events-documentation.md) - Event system integration, captured payloads, and proposed schemas for portal ingestion.\n- [Player and Communication Events](docs/player-and-communication-events.md) - Player lifecycle and chat events captured by the portal bots.\n\n## Overview\n\nBot plugins and supporting assets that bridge game servers to the XtremeIdiots Portal. Captures B3 (BigBrotherBot) events, normalizes payloads, and forwards telemetry for auditing, chat, and player lifecycle management. Uses client-credential auth to call portal API endpoints and falls back to a local spool when outbound calls fail. Includes event schema references, plugin configuration templates, and operational notes for maintaining the plugins.\n\n## Contributing\n\nPlease read the [contributing](CONTRIBUTING.md) guidance; this is a learning and development project.\n\n## Security\n\nPlease read the [security](SECURITY.md) guidance; I am always open to security feedback through email or opening an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrasermolyneux%2Fportal-bots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrasermolyneux%2Fportal-bots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrasermolyneux%2Fportal-bots/lists"}