provider-github
is a Crossplane Provider
that is meant to be used to manage github organizations.
The project is in a prototyping phase but it's already functional and implements follwing objects with partial functionality:
- Organization
- actions enabled repositories
- description
- creation and deleteion not supported
- Team
- visibility
- description
- members
- parent team
- Repository
- user permissions
- team permissions
- webhooks
- branch protection rules
- Membership
- role
To add a new resource follow these steps:
- Run
make submodules
to initialize the "build" Make submodule we use for CI/CD. - Add your new type by running the following command:
export group=sample # lower case e.g. core, cache, database, storage, etc.
export type=MyType # Camel casee.g. Bucket, Database, CacheCluster, etc.
make provider.addtype provider=GitHub group=${group} kind=${type}
- Call the
Setup
function of your controller hereinternal/controller/github.go
- Run
make run
to run locally - Run
make reviewable
to run code generation, linters, and tests. - Run
make build
to build the provider.
Refer to Crossplane's CONTRIBUTING.md file for more information on how the Crossplane community prefers to work. The Provider Development guide may also be of use.