Select this repo as the template in the Repository template field
Check the Include all branches box
Select theartofeducation as the Owner of the repository
Add the repository name
Add a short description for the repository
Select Public or Private as appropriate for the repository
Click the Create repository button
Update files and repository information as needed
Rebase develop on main to ensure that when you create a PR in the future,
GitHub will allow it from develop
git rebase origin/main
git push -f
Follow these steps to set up branch protection rules for develop and main in the new repository (manual setup)
Go to the repo page in GitHub
Go to the Settings page
Go to the Branches section
Under Branch protection rules click the Add rule button
Type the name of the branch in Branch name pattern
Select Require pull request reviews before merging
Set Required approving reviews to 2
Select Dismiss stale pull request approvals when new commits are pushed
Select Require review from Code Owners
Select Require status checks to pass before merging
Select Require branches to be up to date before merging
Check any CI pipelines needed
Select Require signed commits
Select Include administrators
Click the Save changes button
Create a new feature branch to work off
Set up commit linting
Run yarn install
Setup golangci-lint
Run brew install golangci/tap/golangci-lint
Updated the module path in go.mod
Update the README.md
Commit and merge changes
Running The Application
Two Docker containers are setup. The first builds the application while the second will run the executable.
docker-compose up --build
Testing
Tests should be written with the application being a "black box" with no direct access. Test files go under the ./tests directory which should follow the directory structure of the application.