| This page outlines the steps that need to be done to cretate a new subrepository, in order for it to have the same properties as all existing subrepositories: |
| - a golang.org/x redirect |
| - automatic git mirroring from Gerrit to GitHub |
| - automatic importing of GitHub PRs into Gerrit CLs |
| |
| ## Steps |
| |
| 1. Create a new empty Gerrit repository at https://go.googlesource.com, complete with a description. |
| 2. Create a new empty GitHub repository at https://github.com/golang with the same name and description. |
| - Turn off Wikis, Issues, Projects in repository settings. |
| - On "Collaborators & teams" tab: |
| - Add "golang org admins" team with Admin access. |
| - Add "gophers" team with Write access. |
| - Add "robots" team with Write access (can only be done by a maintainer of golang organization; ask someone else if you're not). |
| - Create "cla: yes" and "cla: no" labels, they need to exist so that [@googlebot](https://github.com/googlebot) can automatically apply them. (Without a "cla: yes" label, PRs won't be imported into Gerrit.) |
| 3. Modify 3 x/build commands: |
| - In `cmd/gitmirror`, add the new repo to `shouldMirror` function. |
| - In `maintner/maintnerd`, add the new repo to `goGitHubProjects` slice. |
| - In `cmd/gerritbot`, add the new repo to `gerritProjectWhitelist` map. |
| - See [an example CL](https://golang.org/cl/133896) for all 3 changes. |
| 4. Modify 1 x/website command: |
| - In `cmd/golangorg`, add the new repo to `xMap` map. |
| - See [an example CL](https://golang.org/cl/160137). |
| 5. Redeploy all affected commands in the following order: |
| 1. `cmd/gitmirror` first |
| 2. `maintner/maintnerd` second |
| - Note that it's expected for the new repo not to appear in maintner until first issue or PR is created (see [#25744](https://golang.org/issue/25744)). |
| 3. `cmd/gerritbot` third |
| 4. `cmd/golangorg` fourth |