Table of Contents
- Table of Contents
- Workflow
- Feedback and Bug Reports
- Frequently Asked Questions
- How does GerritBot determine the final commit message?
- Why is GerritBot the owner of my change?
- I heard Gerrit requires one commit per change. Can I upload multiple commits to my PR?
- I need a Google account to sign up for Gerrit? Why can't I sign in using my GitHub account?
- I left a reply to a comment in Gerrit but no one but me can see it
- I'd like to add a feature/fix a bug
GerritBot is a tool used for importing GitHub Pull Requests (PRs) into Gerrit for code review. It was created because the Go team does all its reviews in Gerrit, but we'd like to allow a more common workflow for contributing code via GitHub PRs.
Table of Contents
Workflow
- A user can upload a PR against any of our GitHub repos just as they would with any other GitHub project that accepts PRs
- The PR changes will then be imported by GerritBot and a message will be posted to the GitHub PR Issue containing a link to the Gerrit review
- All comments are handled within Gerrit. Any comments on the GitHub PR will be ignored
- The PR author can continue to upload commits to the branch used by the PR in order to address feedback from Gerrit
- Draft PRs are imported as WIP
- Once the code is ready to be merged, a maintainer will submit the change on Gerrit and GerritBot will close the issue
- Similarly, if a change is closed or abandoned on Gerrit, the corresponding PR will be closed
Feedback and Bug Reports
Please file an issue and use the x/build/cmd/gerritbot: prefix in the title.
Frequently Asked Questions
How does GerritBot determine the final commit message?
It uses the title and description of the PR to construct the commit message for the Gerrit Change. You can edit this using the GitHub user interface.
Why is GerritBot the owner of my change?
This is due to an open bug with the way Gerrit handles acting as another user. Once that is fixed, the original author will also be the owner of the change.
I heard Gerrit requires one commit per change. Can I upload multiple commits to my PR?
You can upload as many commits as you like. GerritBot will handle squashing your commits into one change that Gerrit can handle.
I need a Google account to sign up for Gerrit? Why can't I sign in using my GitHub account?
This is a limitation of the infrastructure that runs our Gerrit instances and is out of our control, plus you already need a Google account to sign our CLA, a requirement for us to accept your contribution in the first place.
I left a reply to a comment in Gerrit but no one but me can see it
Replies to comments on code in Gerrit are first saved as drafts and need to be published via the “Reply” button. This is to prevent multiple emails per review “session” and is similar to the pending review workflow in GitHub. If you see a number next to the “Reply” text in the button, this means you have pending drafts to publish.
I'd like to add a feature/fix a bug
- If the feature/bug is non-trivial, please file an issue first
- The code is located at x/build/cmd/gerritbot (GitHub, Gerrit)
AVX512 Articles AssemblyPolicy Benchmarks Blogs Books BoundingResourceUse CSSStyleGuide ChromeOS CodeReview CodeReviewComments CodeReviewConcurrency CodeTools Comments CommitMessage CommonMistakes CompilerOptimizations Conferences Configuring GoLand for WebAssembly Contributing to gopls CoreDumpDebugging Courses CreatingSubRepository CustomPprofProfiles Darwin DashboardBuilders Deprecated DesignDocuments Diagnostics Download build farm failed logs and debugging DragonFly BSD ErrorValueFAQ Errors ExperienceReports FileTreeDocumentation FreeBSD FromXToGo Frozen Fuzzing trophy case GOPATH Gardening GcToolchainTricks GccgoCrossCompilation GerritAccess GerritBot GithubAccess Go 1.10 Release Party Go 1.6 release party Go 1.8 Release Party Go Community Slides Go Release Cycle Go2 Go2ErrorHandlingFeedback Go2ErrorValuesFeedback Go2GenericsFeedback GoArm GoForCPPProgrammers GoGenerateTools GoGetProxyConfig GoGetTools GoMips GoStrings GoTalks GoUserGroups GoUsers Gomote Gopher HandlingIssues Home HostedContinuousIntegration How to ask for help HowToAsk IDEsAndTextEditorPlugins InstallFromSource InstallTroubleshooting InterfaceSlice InvalidFlag Iota Learn LearnConcurrency LearnErrorHandling LearnServerProgramming LearnTesting Linux LinuxKernelSignalVectorBug Livestreams LockOSThread MacOS12BSDThreadRegisterIssue MethodSets MinimumRequirements MinorReleases Mobile Modules MutexOrChannel NativeClient NetBSD NewSpeakers NoMeToo NoPlusOne NonEnglish OpenBSD PackagePublishing PanicAndRecover PerfDashboard Performance Plan9 Podcasts PortingPolicy PriorDiscussion Projects Proposals ProviderIntegration Questions Quiet Weeks Range RateLimiting ResearchPapers Resolving Problems From Modified Module Path Resources for slog SQLDrivers SQLInterface Screencasts SettingGOPATH SignalHandling SimultaneousAssignment SliceTricks SlowBots Solaris Spectre Spelling Style SuccessStories Switch TableDrivenTests TargetSpecific TestComments TestFailures Timeouts Training Ubuntu Watchflakes WebAccessibilityResourcesAndTips Well known struct tags WhyGo Windows WindowsBuild WindowsCrossCompiling WindowsDLLs X Repositories _Footer cgo golang tools gopherbot gopls integrator FAQ gopls heapdump13 heapdump14 heapdump15 through heapdump17 heapdump15