# README
= Github Controller :toc: macro
[cols="a,a,a,a,a"] |=== | API Version | Build Status | Test Coverage | Go Report Card | License | image::https://img.shields.io/badge/apiversion-v1alpha1-red.svg[link="https://github.com/christopherhein/github-controller/blob/master/LICENSE"] | image::https://travis-ci.com/christopherhein/github-controller.svg?branch=master[link="https://travis-ci.com/christopherhein/github-controller"] | image::https://codecov.io/gh/christopherhein/github-controller/branch/master/graph/badge.svg[link="https://codecov.io/gh/christopherhein/github-controller"] | image::https://goreportcard.com/badge/github.com/christopherhein/github-controller[link="https://goreportcard.com/report/github.com/christopherhein/github-controller"] | image::https://img.shields.io/badge/license-Apache%202.0-blue.svg[link="https://github.com/christopherhein/github-controller/blob/master/LICENSE"] |===
toc::[]
Github Controller is a Kubernetes controller which implements the Kubernetes Resource Model to manage Github repositories, organizations and collaborators. This does so by implementing link:https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/[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 [source,shell]
git clone [email protected]: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 [source,yaml]
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 oforg
only accounts. - Support for Repo Templates
- Support for managing teams