Skip to content

Omni-GitHub

GitHub providers and skills for the PlexusOne ecosystem.

Overview

Omni-GitHub provides three main components:

Package Description
omnistorage/ GitHub as a storage backend for omnistorage-core
omniskill/github/ GitHub skill for AI agents (issues, PRs, code search)
omnidevx/ GitHub DevX contribution collector for omnidevx-core

Quick Start

import "github.com/plexusone/omni-github/omnistorage"

backend, err := omnistorage.New(omnistorage.Config{
    Owner:  "myorg",
    Repo:   "myrepo",
    Branch: "main",
    Token:  os.Getenv("GITHUB_TOKEN"),
})
import "github.com/plexusone/omni-github/omniskill/github"

skill := github.New(github.Config{
    Token: os.Getenv("GITHUB_TOKEN"),
})
if err := skill.Init(ctx); err != nil {
    log.Fatal(err)
}
agent.RegisterSkill(skill)
import "github.com/plexusone/omni-github/omnidevx"

collector, err := omnidevx.New(omnidevx.Config{
    Token:    os.Getenv("GITHUB_TOKEN"),
    Username: "octocat",
})

result, err := collector.Collect(ctx, core.CollectRequest{
    Subject: core.SubjectRef{PersonID: "person:octocat"},
    Period:  core.Period{Start: periodStart, End: periodEnd},
})

Features

Storage Provider

  • 📄 Read and write files to any branch
  • ⚡ Batch multiple file operations into a single atomic commit
  • 📂 List files with prefix filtering
  • 🏢 GitHub Enterprise support

GitHub Skill

  • 🎫 Issue management (list, create, update, comment)
  • 🔀 Pull request operations (list, get, comment)
  • 🔍 Code and issue search
  • 🏢 GitHub Enterprise support

DevX Collector

  • 📊 Profile, per-repository, and daily contribution snapshots
  • 🔄 Canonical devx.* events for the OmniDevX domain
  • 🧮 REST + GraphQL via go-github and githubv4

Installation

go get github.com/plexusone/omni-github

Requirements

  • Go 1.26 or later
  • GitHub personal access token