Skip to content

plexusone/omni-github

Repository files navigation

Omni-GitHub

Go CI Go Lint Go SAST Docs Docs Visualization License

GitHub providers and skills for the PlexusOne ecosystem.

Packages

Package Description Documentation
omnistorage/ GitHub as storage backend Guide
omniskill/github/ GitHub skill for AI agents Guide
omnidevx/ GitHub DevX contribution collector Guide

Installation

go get github.com/plexusone/omni-github

Quick Start

Storage Provider

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

backend, err := omnistorage.New(omnistorage.Config{
    Owner:  "myorg",
    Repo:   "myrepo",
    Branch: "main",
    Token:  os.Getenv("GITHUB_TOKEN"),
})

// Read files
r, _ := backend.NewReader(ctx, "README.md")
data, _ := io.ReadAll(r)

// Write files (creates commit)
w, _ := backend.NewWriter(ctx, "docs/example.txt")
w.Write([]byte("Hello!"))
w.Close()

// Batch operations (single commit)
batch, _ := backend.NewBatch(ctx, "Update files")
batch.Write("file1.txt", []byte("content"))
batch.Delete("old.txt")
batch.Commit()

GitHub Skill

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

skill := github.New(github.Config{
    Token: os.Getenv("GITHUB_TOKEN"),
})
skill.Init(ctx)

// 10 tools: list_issues, create_issue, search_code, etc.
agent.RegisterSkill(skill)

DevX Collector

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/write files to any branch
  • ⚡ Batch operations for atomic commits
  • 📂 List files with prefix filtering
  • 🏢 GitHub Enterprise support

GitHub Skill

  • 🎫 Issue management (list, create, update, comment)
  • 🔀 Pull request operations
  • 🔍 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

Documentation

Full documentation at plexusone.github.io/omni-github

Requirements

  • Go 1.26 or later
  • GitHub personal access token

Related Projects

License

MIT License - see LICENSE for details.

About

GitHub repository backend for OmniStorage.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages