Skip to content

Commit 086147b

Browse files
committed
docs: add github workflows feature and adjust other descriptions
1 parent 471a79f commit 086147b

File tree

2 files changed

+32
-9
lines changed

2 files changed

+32
-9
lines changed

README.md

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
# GitHub Organization as Code
22

3-
Streamline GitHub organization repository management with YAML configuration, GitHub workflows, AWS S3 storage, and GitHub App installation—powered by Terraform under the hood.
3+
Manage your GitHub organization repositories with GitOps principles using YAML configuration, GitHub Actions, AWS S3 storage, and GitHub App integration—powered by Terraform.
44

55
## Features
66

7-
Automate GitHub organization repository creation with YAML configuration, powered by Terraform, stored at AWS S3 storage, and configured using GitHub App integration.
7+
- **Automated Repository Management** - Define repositories, and repository properties using simple YAML file.
8+
- **GitOps Workflow** - Manage configurations via pull requests and automate updates using GitHub Actions.
9+
- **Terraform** - Uses Terraform under the hood to apply changes efficiently.
10+
- **Terraform State Management** - Stores Terraform state securely in AWS S3.
11+
- **GitHub App Integration** - Uses a GitHub App for authentication and API interactions.
812

913
### Fun Fact
1014

11-
This GitHub repository was automatically created using the code in this repository.
15+
This repository was automatically created and is continuously managed using the very code inside it!
1216

1317
## Installation and Configuration
1418

15-
Prepare a bucket at AWS S3 or compatible storage.
19+
Set up an AWS S3 bucket or a compatible storage service.
1620

1721
Create a GitHub App:
1822

@@ -40,10 +44,32 @@ Install the GitHub App:
4044
- for these repositories: All repositories
4145
- **Install**
4246

43-
Use the GitHub App:
47+
Get the GitHub App credentials:
4448

4549
- GitHub / *Organization* / Settings / Developer Settings / GitHub Apps / *Your GitHub App name* / General / Private keys / **Generate a private key**
4650

51+
Set up GitHub actions, variables and secrets:
52+
53+
- GitHub / *Repository* / Settings
54+
- Actions / General
55+
- Workflow permissions: Read and write permissions
56+
- Secrets and variables / Actions / Actions secrets and variables
57+
- Secrets
58+
- **New repository secret**
59+
- `APP_PEM_FILE` (`GITHUB_APP_PEM_FILE` contents)
60+
- `AWS_ACCESS_KEY_ID`
61+
- `AWS_SECRET_ACCESS_KEY`
62+
- Variables
63+
- **New repository variable**
64+
- `APP_ID` (`GITHUB_APP_ID`)
65+
- `APP_INSTALLATION_ID` (`GITHUB_APP_INSTALLATION_ID`)
66+
- `AWS_ENDPOINT_URL_S3`
67+
- `AWS_REGION`
68+
- `OWNER` (`GITHUB_OWNER`)
69+
70+
> [!caution]
71+
> The GitHub App PEM file, S3 API credentials, Terraform state, GitHub repository secrets, and configuration code are key security elements.
72+
4773
## Usage
4874

4975
Edit the GitHub organization YAML configuration [`gh-org.yaml`](gh-org.yaml):
@@ -88,9 +114,6 @@ terraform plan
88114
terraform apply
89115
```
90116

91-
> [!caution]
92-
> The GitHub App PEM file, S3 API credentials, configuration code, and Terraform state are key security elements.
93-
94117
## Credits and Acknowledgments
95118

96119
- Martin Bružina - Author

gh-org.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
repositories:
33
- name: github-organization-as-code
4-
description: Streamline GitHub organization repository management with YAML configuration, GitHub workflows, and GitHub App installation—powered by Terraform under the hood.
4+
description: Manage your GitHub organization repositories with GitOps principles using YAML configuration, GitHub Actions, AWS S3 storage, and GitHub App integration—powered by Terraform.

0 commit comments

Comments
 (0)