From: takashikkbn@... Date: 2019-08-12T08:09:12+00:00 Subject: [ruby-core:94304] [Ruby master Misc#16094] Allow only "Rebase and merge" or "Squash and merge" on GitHub, and sync it on git.ruby-lang.org pre-receive hook Issue #16094 has been updated by k0kubun (Takashi Kokubun). > we found that we could automatically attach notes to "Rebase and merge"d commits on our git.ruby-lang.org's post-commit hook. I implemented this in https://github.com/ruby/ruby-commit-hook/blob/d05f66c9df2eabe45f7cb1d8bd3d51c356144e23/bin/notes-github-pr.rb. ---------------------------------------- Misc #16094: Allow only "Rebase and merge" or "Squash and merge" on GitHub, and sync it on git.ruby-lang.org pre-receive hook https://bugs.ruby-lang.org/issues/16094#change-80652 * Author: k0kubun (Takashi Kokubun) * Status: Open * Priority: Normal * Assignee: k0kubun (Takashi Kokubun) ---------------------------------------- ## Problem * Our pull request merge strategy confuses contributors, as described in [Misc #16093]. * In [Misc #16093], some committers did not like accepting a merge commit. ## Solution * Allow using GitHub's "Rebase and merge" (suggested by @marcandre) and "Squash and merge" (for editing a commit message as needed) to committers * Disable "Create a merge commit" in GitHub repository settings, to avoid concerns found in [Misc #16093]. * Also prohibit pushes to the master branch which are not coming from a pull request by requiring CI in GitHub repository settings. * To allow looking up an associated GitHub pull request from git commands, add `git notes` to "Rebase and merge"d commits in git.ruby-lang.org post-receive hook. (suggested by @nobu) * Perform GitHub bidirectional sync on git.ruby-lang.org pre-receive hook, and accept a push if it does not conflict with "Rebase and merge" on GitHub. ## Notes * Even after implementing this ticket, the Ruby's canonical Git repository will continue to be git.ruby-lang.org as is. * All committers must push non-pull-request commits to git.ruby-lang.org. Direct pushes to GitHub will continue to be disabled. * This approach has one drawback; `git push` to git.ruby-lang.org might block longer than now. -- https://bugs.ruby-lang.org/ Unsubscribe: