@@ -5,10 +5,19 @@ GitHub organization managed as code.
55## Features
66
77- ** Automated GitHub Organization management** - Define repositories using simple YAML file.
8+ - ** GitOps Workflow** - Manage configurations using pull requests and automate updates using GitHub Actions.
89- ** Terraform** - Uses Terraform under the hood to apply changes efficiently.
10+ - ** Terraform State Management** - Stores Terraform state securely in AWS S3.
911- ** GitHub App Integration** - Uses a GitHub App for authentication and API interactions.
1012
11- ## Setup
13+ ## Installation and Configuration
14+
15+ - Configure an AWS S3 bucket to store Terraform state files.
16+ - Set up a GitHub App and its installation to handle authentication and authorization for your GitHub Organization.
17+ - Implement GitOps by setting up a GitHub repository with:
18+ - YAML-based configuration
19+ - GitHub workflows
20+ - Repository variables and secrets
1221
1322### GitHub App
1423
@@ -33,6 +42,18 @@ To create a GitHub App and a GitHub App Installation:
3342 - Install App
3443 - _ your organization_ : ** Install**
3544
45+ ### GitHub Organization as Code
46+
47+ Create GitHub organization YAML configuration file. See [ GitHub Organization YAML] ( #github-organization-yaml ) below.
48+
49+ For example:
50+
51+ ``` yaml
52+ ---
53+ repositories :
54+ - name : .github
55+ ` ` `
56+
3657## Usage
3758
3859### GitHub Organization Configuration YAML
@@ -59,7 +80,7 @@ Export variables `GITHUB_APP_ID`, `GITHUB_APP_INSTALLATION_ID`, and `GITHUB_APP_
5980``` shell
6081direnv allow
6182# direnv: loading ~/bruzit/github-organization-as-code/.envrc
62- # direnv: export +GH_OWNER + GITHUB_APP_ID +GITHUB_APP_INSTALLATION_ID +GITHUB_APP_PEM_FILE
83+ # direnv: export +AWS_ACCESS_KEY_ID +AWS_ENDPOINT_URL_S3 +AWS_SECRET_ACCESS_KEY + GITHUB_APP_ID +GITHUB_APP_INSTALLATION_ID +GITHUB_APP_PEM_FILE +GITHUB_APP_PEM_FILE_PATH +GITHUB_OWNER +TF_VAR_config
6384
6485# Use Terraform as you need
6586terraform -chdir=terraform init
0 commit comments