Skip to content

christopherhein/github-controller

Repository files navigation

Github Controller

API Version

Build Status

Test Coverage

Go Report Card

License

apiversion v1alpha1 red
github controller
badge
github controller
license Apache%202.0 blue
Table of Contents

Github Controller is a Kubernetes controller which implements the Kubernetes Resource Model to manage Github repositories, organizations and collaborators. This does so by implementing custom resource definitions (CRDs) for Repository, (Coming Soon Organization, and Team).

Features

  • Repository will manage Github repositories

  • Control settings for repositories issues, pull requests, wiki

  • Records status of the repo

Installation

Terminal
git clone git@github.com:christopherhein/github-controller.git
cd github-controller
make install deploy

The manager expects that you have GITHUB_AUTH_TOKEN exported into the secret named github-controller-github-auth-token with a key of github-token. This token should have permissions to manage repositories in the github org it’s managing.

Usage

If you want to create a repo you can kubectl apply -f a manifest that looks like this.

vim
apiVersion: github.go.hein.dev/v1alpha1
kind: Repository
metadata:
  name: repository-sample
spec:
  organization: orgname
  description: Sample repository created with the Github Controller
  homepage: org.com/repository-sample
  settings:
    private: false
    issues: true
    wiki: false
    projects: true
    template: false

Roadmap

  • Support for updating repos

  • Add ability to manage user accounts instead of org only accounts.

  • Support for Repo Templates

  • Support for managing teams

About

Kubernetes Controller for managing Github

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published