This is a checklist of what to set when creating a new GitHub Repository.
- Identify the GitHub Organization the repository will belong to.
- One of <
Senzing
|senzing-factory
|senzing-garage
>. - Will be henceforth referred to as
<ORG>
and should be substituted with a value from above. - NOTE: There are slight differences between organization selections in this document. Where applicable options will be listed for each organization. Please be sure to select the options for the respective organization.
- One of <
- Visit
github.com/<ORG>
- Log in as an administrator.
- On
github.com/<ORG>
, click theNew
button under theRepositories
header.- Enter
Respository Name
- Use only lower-case letters, numbers, and hyphens.
- Avoid use of underscore.
- When appropriate, use prefixes to help in searching for repositories.
Examples:
docker-
for docker-based repositoriesgo-
for (non-command) go-based repositoriesgo-...ing
- for cross-cutting concerns
mapper-
for mapper functions
- Choose 🔘
Public
unless otherwise advised. - Check ☑️
Initialize this repository with: Add a README file
- If appropriate, add
.gitignore
- For
Choose a license
, chooseApache License 2.0
- Click
Create repository
button.
- Enter
- On repository home page, in Releases section:
- Click
Create a new release
link. Tag version
:0.0.0
Release title
:0.0.0
- Click
Publish release
button.
- Click
- On repository home page, click
Settings
tab.- Click
Collaborators & teams
tab.- Click
Add teams
button.- Type one of the following for the respective organization into the test box and click to select:
- Senzing:
Senzing/build
- senzing-factory:
senzing-factory/senzing-factory-admin
- senzing-garage:
senzing-garage/senzing-garage-admin
- Senzing:
- Choose a role:
Admin
- Click
Add <ORG>/<Team selection from above>
- Type one of the following for the respective organization into the test box and click to select:
- Click
- Click
- On repository home page, click
Settings
tab.- Click
Branches
tab. - Click
Add classic branch protection rule
Branch name pattern:
main
Protect matching branches
section- ☑️
Require a pull request before merging
- ☑️
Require approvals
- ☑️
Require review from Code Owners
- ☑️
- ☑️
- ☑️
Require signed commits
- Click
Create
button
- Click
- On repository home page, click
Settings
tab.- Click
Collaborators & teams
tab.- For ALL organizations:
- Click
Add teams
button.- Type
senzing-automation
- Choose
<ORG>/senzing-automation
- Choose a role:
Write
- Click
Add <ORG>/senzing-automation
- Type
- Click
Add teams
button.- Type
senzing-devsecops
- Choose
<ORG>/senzing-devsecops
- Choose a role:
Write
- Click
Add <ORG>/senzing-devsecops
- Type
- Click
Add teams
button.- Type
senzing-project-managers
- Choose
<ORG>/senzing-project-managers
- Choose a role:
Maintain
- Click
Add senzing-project-managers
- Type
- Click
- For Organization
Senzing
:- Click
Add teams
button.- Using the appropriate development team based on the list: https://github.com/orgs/Senzing/teams
- Choose the team that will be used in
.github/CODEOWNERS
- Choose a role:
Write
- Click
Add ... to this repository
- Click
- For Organizations
senzing-factory
|senzing-garage
:- Click
Add teams
button.- Type
senzing
- Choose the team that will be used in
.github/CODEOWNERS
- Choose a role:
Write
- Click
Add ... to this repository
- Type
- Click
- For ALL organizations:
- Click
- On repository home page, click
Settings
tab.- Click
Code security
tab.- In
Access to alerts
:- Search for the team that will be used in
.github/CODEOWNERS
and select. - Click
Save changes
button
- Search for the team that will be used in
- In
- Click
- On the repository home page, click
Projects
tab.- Click
Link a project
- Select the respective project board for the repository.
Senzing
organization:Senzing Github Organization Project
senzing-factory
organization:Factory
senzing-garage
organization, one of:App Server
G2 Python
Garage
Garage Roadmap
- Click
- On repository home page, click About gear
- Add Topic relative to which project board will be linked to the repository:
senzing-app-server
for Api Server / Web Appsenzing-github-organization-project
for all Senzing organization repositoriessenzing-g2-python
for G2Python projectssenzing-garage
for Garage projectssenzing-devsecops
for all senzing-factory organization projectssenzing-unknown
if not known
- Add optional Topics relative to code sub-project.
Examples:
golang
- for "Go" based projects
- Click
Save changes
button
- Add Topic relative to which project board will be linked to the repository:
- On repository home page, click
Issues
tab.- Click
New issue
button. - Select any type of issue and select
Get started
Title
:Initial content
Add a description
: delete any default content in this text box.- In the right side navigation select
assign yourself
. - In the right side navigation select the respective project board.
- Click
Submit new issue
button.
- Click
- On repository home page, click
Branch: main
button.- Create new branch.
Example:
1-[your-name]-1
NOTE: Branch names should start with the respective issue number.
- Create new branch.
Example:
-
On your workstation,
-
✏️ Substituting the organization for
<ORG>
and the new repository name for<REPO>
,git clone [email protected]:<ORG>/<REPO>.git cd <REPO> git checkout 1-[your-name]-1
-
Populate the new repository with the
Community Artifacts
found in github.com/senzing-garage/template-repository. -
Modify
CONTRIBUTING.md
export GIT_ACCOUNT=<ORG>
export GIT_REPOSITORY=<new-repository-name>
-
Modify
.github/CODEOWNERS
-
Modify
.github/dependabot.yml
-
Modify
.project
-
Modify
./docs/README.md
-
Delete
.github/workflows
files that do not apply. -
Rename
add-to-project-garage-dependabot.yaml
andadd-to-project-garage.yaml
with the appropriate project name. -
Update the project variable and name of the workflow for the following:
add-to-project-<project>-dependabot.yaml
add-to-project-<project>.yaml
move-pr-to-done-dependabot.yaml
-
Commit the branch.
-
Merge
1-[your-name]-1
branch into main branch.
-
- On repository home page, click
Settings
tab. - Click
Branches
tab. - Edit
main
branch. Protect matching branches
section- ☑️
Require a pull request before merging
- ☑️
Require approvals
- ☑️
Require review from Code Owners
- ☑️
- ☑️
Require status checks to pass before merging
.- ☑️
Require branches to be up to date before merging
.- Search and add ALL required status checks for the respective repository.
- Ex. type
lint
in the search bar and selectlint-workflows / Lint Workflows
andlint-workflows / changes
. Both of these should be selected on ALL of our repositories. It is in the format<workfow-name>/<job-name>
. Ignore any checks prefixed with-->
. - TIPS:
- Search for the job name of the respective workflow.
- Jobs to be added must have been run within the past 7 days against the respective repository.
- See GitHub docs for more details.
- Ex. type
- Search and add ALL required status checks for the respective repository.
- ☑️
- ☑️
Require signed commits
- ☑️
Do not allow bypassing the above settings
- Click
Save changes
at the bottom of the page.
- ☑️
- On repository home page, click
Settings
tab.- Click
Pages
tab.- In
Build and deployment
section:- Source:
Deploy from a branch
- Branch
- Select branch:
main
- Select folder:
/docs
- Select branch:
- Click
Save
button
- Source:
- In
Custom domain
section:- ☑️ Enforce HTTPS
- In
- Click
Additional settings changes required for auto merging dependabot pull requests. Requires Admin access.
One time CODEOWNER token configuration.
- On repository home page, click
Settings
tab. - In
Pull Requests
section- 🔲
Allow merge commits
- ☑️
Allow squash merging
- ☑️
Allow rebase merging
- ☑️
Always suggest updating pull request branches
- ☑️
Allow auto-merge
- ☑️
Automatically delete head branches
- 🔲
- On repository home page, click
Settings
tab. - In left side navigation bar, click
Actions
>General
.- ☑️
Allow GitHub Actions to create and approve pull requests
- ☑️
- Click
Save
button.
Perform the following steps after the dependabot actions have been performed. There will be no searchable items at the time of repository creation unless the status check has been performed within the last 7 day.
- On repository home page, click
Settings
tab. - In left side navigation bar, select
Branches
tab. - Select
Edit
for themain
branch protection rule.- Under
Require branches to be up to date before merging
, search for and select the required checks. Ex:build-docker-container
dependabot-approve-and-merge / dependabot-approve-and-merge
Go 1.20 - darwin
Go 1.20 - linux
Go 1.20 - windows
gofmt / gofmt
gosec
- Click the matching search result in the drop down.
- Click
Save changes
at the bottom of the page.
- Under