On each commit of Ruby's Git repository, following git hooks are triggered:
- Verify committer email from
SVN_ACCOUNT_NAME
associated to SSH key used forgit push
- Reject merge commits (ask @mame about why)
- Send notification to [email protected]
- Commit automatic styling:
- remove trailing spaces
- append newline at EOF
- expand tabs
- Update version.h if date is changed
- Request Redmine to fetch changesets
- Mirror cgit to GitHub
- Notify committer's Slack
/data/git/ruby.git
: Bare Git repository of rubyhooks/post-receive
: Run/home/git/git.ruby-lang.org/hooks/post-receive.sh
/home/git/git.ruby-lang.org
: Cloned Git repository of git.ruby-lang.org
- There's a symlink
/var/git
->/data/git
. - User
git
's$HOME
is NOT/home/git
but/var/git
.
- We use only
admin
user forgit.ruby-lang.org
's SSH access.- You should contact @hsbt, @mame or @k0kubun for accessing
git.ruby-lang.org
.
- You should contact @hsbt, @mame or @k0kubun for accessing
git push
toruby/git.ruby-lang.org
's master branch automatically updates them.ruby/git.ruby-lang.org
push webhook triggerscgi-bin/webhook.cgi
- It runs
sudo -u git bin/update-git-ruby-lang-org.sh
# dry-run
bin/hocho apply -n git.ruby-lang.org
# apply
bin/hocho apply git.ruby-lang.org
- How to store
ssh_host_key*
andsshd_config
safely? - How to write a recipe to mount data volume for bare git repository?
- How to write a recipe for mackerel with the host key of git.ruby-lang.org?
- Add your gem repository name to
DEFAULT_GEM_REPOS
in cgi-bin/webhook.cgi, and push it to master. - Go to
https://github.com/ruby/{repo_name}/settings/hooks
, and add a webhook- Payload URL: Set the content of
~git/config/git-ruby-lang-org-url
in git.ruby-lang.org - Content type: application/json
- Secret: Set the content of
~git/config/git-ruby-lang-org-secret
in git.ruby-lang.org - Which events: Just the push event.
- Payload URL: Set the content of