diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..b18fd293
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,6 @@
+version: 2
+updates:
+ - package-ecosystem: 'github-actions'
+ directory: '/'
+ schedule:
+ interval: 'weekly'
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index b0dc15e9..d5e1f18a 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -10,14 +10,11 @@ jobs:
name: Test
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.4
- - name: Install dependencies
- run: |
- gem install bundler --no-document
- bundle install
+ - run: bundle install
- name: Run test
run: bundle exec rake test
diff --git a/.ruby-version b/.ruby-version
index a4dd9dba..406ebcbd 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-2.7.4
+3.2.7
diff --git a/Gemfile.lock b/Gemfile.lock
index 87837ad9..a364a30b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -5,7 +5,7 @@ GEM
bcrypt_pbkdf (1.1.0)
ed25519 (1.3.0)
hashie (5.0.0)
- hocho (0.3.7)
+ hocho (0.3.8)
hashie
itamae
net-ssh (>= 4.1.0)
@@ -16,22 +16,22 @@ GEM
schash (~> 0.1.0)
specinfra (>= 2.64.0, < 3.0.0)
thor (>= 1.0.0)
- net-scp (1.2.1)
- net-ssh (>= 2.6.5)
- net-ssh (7.0.1)
- net-telnet (0.1.1)
- power_assert (2.0.2)
- rake (13.0.6)
+ net-scp (4.0.0)
+ net-ssh (>= 2.6.5, < 8.0.0)
+ net-ssh (7.2.1)
+ net-telnet (0.2.0)
+ power_assert (2.0.3)
+ rake (13.1.0)
schash (0.1.2)
sfl (2.3)
- specinfra (2.83.3)
+ specinfra (2.89.0)
net-scp
net-ssh (>= 2.7)
- net-telnet (= 0.1.1)
+ net-telnet
sfl
- test-unit (3.5.5)
+ test-unit (3.6.2)
power_assert
- thor (1.2.1)
+ thor (1.3.1)
PLATFORMS
ruby
@@ -44,4 +44,4 @@ DEPENDENCIES
test-unit
BUNDLED WITH
- 2.1.4
+ 2.4.14
diff --git a/bin/auto-style.rb b/bin/auto-style.rb
deleted file mode 100755
index d99a0484..00000000
--- a/bin/auto-style.rb
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env ruby
-# Usage:
-# auto-style.rb [repo_path] [args...]
-
-require 'shellwords'
-require 'tmpdir'
-ENV['LC_ALL'] = 'C'
-
-class Git
- attr_reader :depth
-
- def initialize(oldrev, newrev, branch)
- @oldrev = oldrev
- @newrev = newrev
- @branch = branch
- with_clean_env do
- @revs = {}
- IO.popen(['git', 'log', '--format=%H %s', "#{@oldrev}..#{@newrev}"]) do |f|
- f.each do |line|
- line.chomp!
- rev, subj = line.split(' ', 2)
- @revs[rev] = subj
- end
- end
- @depth = @revs.size
- end
- end
-
- # ["foo/bar.c", "baz.h", ...]
- def updated_paths
- with_clean_env do
- IO.popen(['git', 'diff', '--name-only', @oldrev, @newrev], &:readlines).each(&:chomp!)
- end
- end
-
- # [0, 1, 4, ...]
- def updated_lines(file)
- lines = []
- revs = @revs.map {|rev, subj| rev unless subj.start_with?("Revert ")}.compact
- revs_pattern = /\A(?:#{revs.join('|')}) /
- with_clean_env { IO.popen(['git', 'blame', '-l', '--', file], &:readlines) }.each_with_index do |line, index|
- if revs_pattern =~ line
- lines << index
- end
- end
- lines
- end
-
- def commit(log, *files)
- git('add', *files)
- git('commit', '-m', log)
- git('push', 'origin', @branch)
- end
-
- private
-
- def git(*args)
- cmd = ['git', *args].shelljoin
- unless with_clean_env { system(cmd) }
- abort "Failed to run: #{cmd}"
- end
- end
-
- def with_clean_env
- git_dir = ENV.delete('GIT_DIR') # this overcomes '-C' or pwd
- yield
- ensure
- ENV['GIT_DIR'] = git_dir if git_dir
- end
-end
-
-DEFAULT_GEM_LIBS = %w[
- bundler
- cmath
- csv
- e2mmap
- fileutils
- forwardable
- ipaddr
- irb
- logger
- matrix
- mutex_m
- ostruct
- prime
- rdoc
- rexml
- rss
- scanf
- shell
- sync
- thwait
- tracer
- webrick
-]
-
-DEFAULT_GEM_EXTS = %w[
- bigdecimal
- date
- dbm
- digest
- etc
- fcntl
- fiddle
- gdbm
- io/console
- io/nonblock
- json
- openssl
- psych
- racc
- sdbm
- stringio
- strscan
- zlib
-]
-
-IGNORED_FILES = [
- # default gems whose master is GitHub
- %r{\Abin/(?!erb)\w+\z},
- *(DEFAULT_GEM_LIBS + DEFAULT_GEM_EXTS).flat_map { |lib|
- [
- %r{\Alib/#{lib}/},
- %r{\Alib/#{lib}\.gemspec\z},
- %r{\Alib/#{lib}\.rb\z},
- %r{\Atest/#{lib}/},
- ]
- },
- *DEFAULT_GEM_EXTS.flat_map { |ext|
- [
- %r{\Aext/#{ext}/},
- %r{\Atest/#{ext}/},
- ]
- },
-
- # vendoring (ccan)
- %r{\Accan/},
-
- # vendoring (io/)
- %r{\Aext/io/},
-
- # vendoring (nkf)
- %r{\Aext/nkf/nkf-utf8/},
-
- # vendoring (onigmo)
- %r{\Aenc/},
- %r{\Ainclude/ruby/onigmo\.h\z},
- %r{\Areg.+\.(c|h)\z},
-
- # explicit or implicit `c-file-style: "linux"`
- %r{\Aaddr2line\.c\z},
- %r{\Amissing/},
- %r{\Astrftime\.c\z},
- %r{\Avsnprintf\.c\z},
-
- # to respect the original statements of licenses
- %r{\ALEGAL\z},
-]
-
-repo_path, *rest = ARGV
-rest.each_slice(3).map do |oldrev, newrev, refname|
- branch = IO.popen({ 'GIT_DIR' => repo_path }, ['git', 'rev-parse', '--symbolic', '--abbrev-ref', refname], &:read).strip
- next if branch != 'master' # Stable branches are on svn, and for consistency we should not make a git-specific commit.
- vcs = Git.new(oldrev, newrev, branch)
-
- Dir.mktmpdir do |workdir|
- depth = vcs.depth + 1
- system "git clone --depth=#{depth} --branch=#{branch} file:///#{repo_path} #{workdir}"
- Dir.chdir(workdir)
-
- paths = vcs.updated_paths
- paths.select! {|l|
- /^\d/ !~ l and /\.bat\z/ !~ l and
- (/\A(?:config|[Mm]akefile|GNUmakefile|README)/ =~ File.basename(l) or
- /\A\z|\.(?:[chsy]|\d+|e?rb|tmpl|bas[eh]|z?sh|in|ma?k|def|src|trans|rdoc|ja|en|el|sed|awk|p[ly]|scm|mspec|html|)\z/ =~ File.extname(l))
- }
- files = paths.select {|n| File.file?(n) }
- files.reject! do |f|
- IGNORED_FILES.any? { |re| f.match(re) }
- end
- next if files.empty?
-
- trailing = eofnewline = expandtab = false
-
- edited_files = files.select do |f|
- src = File.binread(f) rescue next
- eofnewline = eofnewline0 = true if src.sub!(/(?> "$log_path"
}
+# Run a given command. If it fails, notify Slack and exits abnormally.
+function run() {
+ echo "+ $@" >> "$log_path"
+ if ! "$@"; then
+ "${this_repo}/bin/notify-slack-failed-gem-update.rb" "$log_path" >> "$log_path" 2>&1
+ log "Failed: $@"
+ exit 1
+ fi
+}
+
# Initialize working directory only if missing
if [ ! -d "$ruby_workdir" ]; then
git clone "file://${ruby_repo}" "$ruby_workdir"
@@ -29,14 +40,12 @@ fi
log "### start ###"
-git -C "$ruby_workdir" fetch origin master >> "$log_path" 2>&1
-git -C "$ruby_workdir" reset --hard origin/master >> "$log_path" 2>&1
+run git -C "$ruby_workdir" fetch origin master >> "$log_path" 2>&1
+run git -C "$ruby_workdir" reset --hard origin/master >> "$log_path" 2>&1
-if ruby -C "$ruby_workdir" tool/sync_default_gems.rb "$gem_name" "$before..$after" >> "$log_path" 2>&1; then
- # Pushing ruby_workdir to cgit to make sure all git hooks are performed on sync-ed commits.
- if ! SVN_ACCOUNT_NAME=git git -C "$ruby_workdir" push origin "HEAD:master" >> "$log_path" 2>&1; then
- log "Failed: git push"
- fi
-fi
+run ruby -C "$ruby_workdir" tool/sync_default_gems.rb "$gem_name" "$before..$after" >> "$log_path" 2>&1
+
+# Pushing ruby_workdir to cgit to make sure all git hooks are performed on sync-ed commits.
+SVN_ACCOUNT_NAME=git run git -C "$ruby_workdir" push origin "HEAD:master" >> "$log_path" 2>&1
log "### end ###\n"
diff --git a/bin/update-git-ruby-lang-org.sh b/bin/update-git-ruby-lang-org.sh
index 7dce6c00..195f16ac 100755
--- a/bin/update-git-ruby-lang-org.sh
+++ b/bin/update-git-ruby-lang-org.sh
@@ -1,4 +1,4 @@
-#!/bin/sh -eu
+#!/bin/sh -eux
# This is executed as `sudo -u git /home/git/git.ruby-lang.org/bin/update-git-ruby-lang-org.sh`
# when GitHub ruby/git.ruby-lang.org's push webhook is delivered to `cgi-bin/webhook.cgi`.
#
diff --git a/bin/update-version.h.rb b/bin/update-version.h.rb
index 2e95e63f..706d5e63 100755
--- a/bin/update-version.h.rb
+++ b/bin/update-version.h.rb
@@ -25,8 +25,8 @@
'TIME' => [/".+"/, '"%H:%M:%S"'],
'CODE' => [/\d+/, '%Y%m%d'],
'YEAR' => [/\d+/, '%Y'],
- 'MONTH' => [/\d+/, '%m'],
- 'DAY' => [/\d+/, '%d']
+ 'MONTH' => [/\d+/, '%-m'],
+ 'DAY' => [/\d+/, '%-d']
}
now = Time.now
@@ -43,7 +43,7 @@
if /RUBY_RELEASE_(#{formats.keys.join('|')})/o =~ line
format = formats[$1]
line.sub!(format[0]) do
- now.strftime(format[1]).sub(/^0/, '')
+ now.strftime(format[1])
end
end
fnew.puts line.rstrip
diff --git a/cgi-bin/webhook.cgi b/cgi-bin/webhook.cgi
index b9db2648..f76e8f3e 100755
--- a/cgi-bin/webhook.cgi
+++ b/cgi-bin/webhook.cgi
@@ -6,6 +6,7 @@ require 'cgi'
require 'json'
require 'logger'
require 'openssl'
+require 'shellwords'
class Webhook
LOG_PATH = '/tmp/webhook.log'
@@ -63,16 +64,12 @@ end
class PushHook
DEFAULT_GEM_REPOS = %w[
- abbrev
- base64
benchmark
- bigdecimal
cgi
date
delegate
did_you_mean
digest
- drb
English
erb
error_highlight
@@ -81,41 +78,36 @@ class PushHook
fileutils
find
forwardable
- getoptlong
io-console
io-nonblock
io-wait
ipaddr
irb
logger
- mutex_m
net-http
net-protocol
- nkf
- observer
open-uri
open3
+ openssl
optparse
ostruct
pathname
pp
prettyprint
+ prism
pstore
psych
- racc
rdoc
readline
readline-ext
reline
resolv
- rinda
securerandom
set
shellwords
singleton
stringio
syntax_suggest
- syslog
tempfile
time
timeout
@@ -126,8 +118,10 @@ class PushHook
weakref
win32ole
yaml
- yarp
zlib
+ json
+ win32-registry
+ mmtk
].map { |repo| "ruby/#{repo}" } + %w[
rubygems/rubygems
]
@@ -184,11 +178,10 @@ class PushHook
end
def execute(*cmd, user:)
- require 'open3'
- stdout, stderr, status = Open3.capture3('/usr/bin/sudo', '-u', user, *cmd)
- logger.info("+ #{cmd.join(' ')} (success: #{status.success?})")
- logger.info("stdout: #{stdout}")
- logger.info("stderr: #{stderr}")
+ cmd = ['/usr/bin/sudo', '-u', user, *cmd]
+ logger.info("+ #{cmd.shelljoin}")
+ system("#{cmd.shelljoin} >> #{Webhook::LOG_PATH} 2>&1", exception: true)
+ logger.info("done")
end
end
diff --git a/config/email.yml b/config/email.yml
index a1e10d5f..8cabc7c5 100644
--- a/config/email.yml
+++ b/config/email.yml
@@ -32,17 +32,16 @@ byroot:
# dave
# davidflanagan
# dblack
-drbrain:
- - drbrain@segment7.net
- - drbrain@ruby-lang.org
+# drbrain
duerst:
- duerst@it.aoyama.ac.jp
-eban:
- - eban@os.rim.or.jp
+# eban
# emboss
eightbitraptor:
- eightbitraptor@ruby-lang.org
- matt@eightbitraptor.com
+eileencodes:
+ - eileencodes@gmail.com
eregon:
- eregontp@gmail.com
- eregon@ruby-lang.org
@@ -53,9 +52,7 @@ git:
glass:
- glass.saga@gmail.com
# gogotanaka
-gotoken:
- - gotoken@gmail.com
- - gotoken@notwork.org
+# gotoken
# gotoyuzo
# gsinclair
# H_Konishi
@@ -64,16 +61,22 @@ headius:
# hone
hsbt:
- hsbt@ruby-lang.org
+ima1zumi:
+ - mariimaizumi5@gmail.com
# iwamatsu
jaruga:
- jaruga@ruby-lang.org
# jeg2
+jemma:
+ - jemmaissroff@gmail.com
jeremy:
- code@jeremyevans.net
jhawthorn:
- john@hawthorn.email
- jhawthorn@ruby-lang.org
# jim
+kddnewton:
+ - kddnewton@gmail.com
k0kubun:
- takashikkbn@gmail.com
# kanemoto
@@ -83,6 +86,9 @@ katei:
kazu:
- zn@mbf.nifty.com
# keiju
+kjtsanaktsidis:
+ - ktsanaktsidis@zendesk.com
+ - kj@kjtsanaktsidis.id.au
knu:
- knu@idaemons.org
ko1:
@@ -136,6 +142,8 @@ odaira:
- rodaira@us.ibm.com
okkez:
- okkez000@gmail.com
+ono-max:
+ - onoto1998@gmail.com
peter.zhu:
- peter@peterzhu.ca
- peter.zhu@ruby-lang.org
@@ -148,10 +156,11 @@ samuel:
- samuel.williams@oriontransfer.co.nz
schneems:
- richard.schneeman@gmail.com
-seki:
- - m_seki@mva.biglobe.ne.jp
+# seki
# ser
# shigek
+shioimm:
+ - shioi.mm@gmail.com
shirosaki:
- h.shirosaki@gmail.com
shugo:
@@ -167,8 +176,7 @@ soutaro:
- matsumoto@soutaro.com
stomar:
- sto.mar@web.de
-suke:
- - masaki.suketa@nifty.ne.jp
+# suke
tadd:
- tad.a.digger@gmail.com
- tadd@ruby-lang.org
@@ -182,14 +190,15 @@ tenderlove:
- aaron.patterson@gmail.com
- tenderlove@ruby-lang.org
# tmm1
+tompng:
+ - tomoyapenguin@gmail.com
# toyoshim
# ts
# ttate
# uema2
usa:
- usa@ruby-lang.org
-wanabe:
- - s.wanabe@gmail.com
+# wanabe
watson1978:
- watson1978@gmail.com
# wakou
@@ -197,15 +206,22 @@ watson1978:
# wew
# wyhaines
# xibbar
+ydah:
+ - t.yudai92@gmail.com
yugui:
- yugui@yugui.jp
yui-knk:
- yui-knk@ruby-lang.org
yuki:
- yk.nishijima@gmail.com
+zenspider:
+ - ryand-github@zenspider.com
+ - ryand-ruby@zenspider.com
+ - zenspider@gmail.com
# zsombor
zverok:
- zverok.offline@gmail.com
- zverok@ruby-lang.org
zzak:
+ - zzak@hey.com
- zzakscott@gmail.com
diff --git a/hooks/post-receive-pre.sh b/hooks/post-receive-pre.sh
deleted file mode 100755
index 0fc4a3bf..00000000
--- a/hooks/post-receive-pre.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash -u
-set -o pipefail
-# This script is executed by `git@git.ruby-lang.org:ruby.pre.git/hooks/post-receive`.
-# The ruby.pre repository is just a sandbox, and any commit isn't pushed to it automatically.
-# Its outputs are logged to `/tmp/post-receive-pre.log`.
-
-# script parameters
-ruby_git="/var/git/ruby.pre.git"
-ruby_commit_hook="$(cd "$(dirname $0)"; cd ..; pwd)"
-
-function log() {
- echo -e "[$$: $(date "+%Y-%m-%d %H:%M:%S %Z")] $1"
-}
-
-log "### start ###"
-log "args: $*"
-
-# log "==> github sync"
-# git remote update; git push github
-
-# log "==> notify slack"
-# "${ruby_commit_hook}/bin/notify-slack.rb" $*
-
-# log "==> commit-email.rb"
-# "${ruby_commit_hook}/bin/commit-email.rb" \
-# "$ruby_git" ruby-cvs@ruby-lang.org $* \
-# --viewer-uri "https://github.com/ruby/ruby/commit/" \
-# --error-to cvs-admin@ruby-lang.org
-
-log "==> redmine fetch changesets"
-curl -s "https://bugs.ruby-lang.org/sys/fetch_changesets?key=`cat ~git/config/redmine.key`" &
-
-# Make extra commits from here.
-# The above procedure will be executed for the these commits in another post-receive hook.
-
-log "==> auto-style"
-SVN_ACCOUNT_NAME=git "${ruby_commit_hook}/bin/auto-style.rb" "$ruby_git" $*
-
-log "==> update-version.h"
-SVN_ACCOUNT_NAME=git "${ruby_commit_hook}/bin/update-version.h.rb" git "$ruby_git" $*
-
-log "==> notes-github-pr"
-SVN_ACCOUNT_NAME=git "${ruby_commit_hook}/bin/notes-github-pr.rb" "$ruby_git" $*
-
-log "### end ###\n"
diff --git a/hooks/post-receive.sh b/hooks/post-receive.sh
index df5a3c09..f8ed5731 100755
--- a/hooks/post-receive.sh
+++ b/hooks/post-receive.sh
@@ -19,7 +19,7 @@ log "SVN_ACCOUNT_NAME: ${SVN_ACCOUNT_NAME:-}"
log "args: $*"
log "==> notify slack"
-"${ruby_commit_hook}/bin/notify-slack.rb" $*
+"${ruby_commit_hook}/bin/notify-slack-commits.rb" $*
log "==> commit-email.rb"
"${ruby_commit_hook}/bin/commit-email.rb" \
@@ -33,9 +33,6 @@ curl -s "https://bugs.ruby-lang.org/sys/fetch_changesets?key=`cat ~git/config/re
# Make extra commits from here.
# The above procedure will be executed for the these commits in another post-receive hook.
-log "==> auto-style"
-SVN_ACCOUNT_NAME=git "${ruby_commit_hook}/bin/auto-style.rb" "$ruby_git" $*
-
log "==> update-version.h"
SVN_ACCOUNT_NAME=git "${ruby_commit_hook}/bin/update-version.h.rb" git "$ruby_git" $*
diff --git a/hooks/pre-receive-pre.sh b/hooks/pre-receive-pre.sh
deleted file mode 100755
index 559f6b15..00000000
--- a/hooks/pre-receive-pre.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-set -o pipefail
-# This script is executed by `git@git.ruby-lang.org:ruby.pre.git/hooks/pre-receive`.
-# The ruby.pre repository is just a sandbox, and any commit isn't pushed to it automatically.
-# Its outputs are logged to `/tmp/pre-receive-pre.log`.
-
-# script parameters
-ruby_git="/var/git/ruby.git"
-ruby_commit_hook="$(cd "$(dirname $0)"; cd ..; pwd)"
-
-function log() {
- echo -e "[$$: $(date "+%Y-%m-%d %H:%M:%S %Z")] $1"
-}
-
-log "### start ###"
-log "args: $*"
-
-log "==> prohibit merge commits"
-"${ruby_commit_hook}/bin/prohibit-merge-commits.rb" $* || exit 1
-
-log "==> check email and refname"
-"${ruby_commit_hook}/bin/check-email-and-refname.rb" $* || exit 1
-
-log "### end ###\n"
diff --git a/recipes/apache2.rb b/recipes/apache2.rb
index 59f92848..99a2fc40 100644
--- a/recipes/apache2.rb
+++ b/recipes/apache2.rb
@@ -18,6 +18,17 @@
action :nothing
end
+remote_file '/var/www/git.ruby-lang.org/robots.txt' do
+ mode '644'
+ owner 'root'
+end
+
+remote_file '/etc/apache2/conf-available/cgit.conf' do
+ mode '644'
+ owner 'root'
+ notifies :reload, 'service[apache2]'
+end
+
%w[git svn].each do |subdomain|
remote_file "/etc/apache2/sites-available/#{subdomain}.ruby-lang.org.conf" do
mode '644'
diff --git a/recipes/bullseye-backports.rb b/recipes/bullseye-backports.rb
new file mode 100644
index 00000000..198dac5f
--- /dev/null
+++ b/recipes/bullseye-backports.rb
@@ -0,0 +1,8 @@
+execute 'apt update' do
+ action :nothing
+end
+
+# Use newer git: 2.34.x+ instead of 2.30.x
+remote_file '/etc/apt/sources.list.d/bullseye-backports.list' do
+ notifies :run, 'execute[apt update]'
+end
diff --git a/recipes/cgit.rb b/recipes/cgit.rb
index e9118e77..ba651025 100644
--- a/recipes/cgit.rb
+++ b/recipes/cgit.rb
@@ -7,8 +7,3 @@
mode "644"
owner "root"
end
-
-remote_file "/var/git/.ssh/authorized_keys" do
- mode "600"
- owner "git"
-end
diff --git a/recipes/default.rb b/recipes/default.rb
index 7380b9b4..3ee3f149 100644
--- a/recipes/default.rb
+++ b/recipes/default.rb
@@ -1,23 +1,19 @@
-package "cgit"
-package "certbot"
-package "git"
-package "ruby"
-package "postfix"
-package "gpg"
-package "rsync"
+include_recipe 'bullseye-backports'
-user "git" do
- shell "/usr/bin/git-shell"
-end
-
-directory "/home/git" do
- owner "git"
- group "git"
- mode "0755"
+package 'cgit'
+package 'certbot'
+package 'git/bullseye-backports' do
+ only_if '[[ $(git -v) != "git version 2.39.2" ]]'
end
+package 'ruby'
+package 'postfix'
+package 'gpg'
+package 'rsync'
include_recipe 'apache2'
+include_recipe 'postfix'
include_recipe 'cgit'
+include_recipe 'git-user'
include_recipe 'git-sync-check'
remote_file '/etc/sudoers'
diff --git a/recipes/files/etc/apache2/conf-available/cgit.conf b/recipes/files/etc/apache2/conf-available/cgit.conf
new file mode 100644
index 00000000..524db776
--- /dev/null
+++ b/recipes/files/etc/apache2/conf-available/cgit.conf
@@ -0,0 +1,318 @@
+ScriptAlias /cgit/ "/usr/lib/cgit/cgit.cgi/"
+RedirectMatch ^/cgit$ /cgit/
+Alias /cgit-css "/usr/share/cgit/"
+
+ AllowOverride None
+ Options ExecCGI FollowSymlinks
+ Require all granted
+
+ Order Allow,Deny
+ Allow from all
+
+Deny from 100.27.8.240
+Deny from 101.32.115.96
+Deny from 101.32.240.178
+Deny from 101.32.242.16
+Deny from 101.32.243.24
+Deny from 101.32.244.173
+Deny from 101.32.254.77
+Deny from 103.121.39.54
+Deny from 119.28.105.111
+Deny from 124.156.196.210
+Deny from 124.156.200.172
+Deny from 124.156.205.228
+Deny from 124.156.207.130
+Deny from 129.226.146.19
+Deny from 129.226.150.55
+Deny from 129.226.151.215
+Deny from 129.226.154.196
+Deny from 129.226.156.129
+Deny from 129.226.158.117
+Deny from 129.226.192.111
+Deny from 129.226.192.224
+Deny from 129.226.193.30
+Deny from 129.226.209.118
+Deny from 129.226.91.207
+Deny from 129.226.92.236
+Deny from 129.226.92.4
+Deny from 150.109.11.222
+Deny from 150.109.12.106
+Deny from 150.109.13.249
+Deny from 150.109.17.45
+Deny from 150.109.20.64
+Deny from 150.109.21.76
+Deny from 150.109.23.33
+Deny from 150.109.24.245
+Deny from 150.109.25.235
+Deny from 170.106.107.202
+Deny from 170.106.108.10
+Deny from 170.106.109.24
+Deny from 170.106.115.155
+Deny from 170.106.142.139
+Deny from 170.106.148.16
+Deny from 170.106.151.66
+Deny from 170.106.169.165
+Deny from 170.106.172.189
+Deny from 170.106.177.16
+Deny from 170.106.187.237
+Deny from 170.106.187.99
+Deny from 170.106.192.82
+Deny from 170.106.197.128
+Deny from 170.106.84.19
+Deny from 18.234.184.27
+Deny from 194.120.230.118
+Deny from 195.191.219.130
+Deny from 195.62.32.102
+Deny from 20.171.207.103
+Deny from 20.171.207.108
+Deny from 20.171.207.192
+Deny from 20.171.207.209
+Deny from 20.171.207.230
+Deny from 20.171.207.65
+Deny from 20.171.207.86
+Deny from 207.180.245.57
+Deny from 216.244.66.230
+Deny from 24.131.231.46
+Deny from 3.237.46.45
+Deny from 34.229.134.0
+Deny from 43.128.84.42
+Deny from 43.128.88.143
+Deny from 43.128.89.170
+Deny from 43.130.0.17
+Deny from 43.130.12.196
+Deny from 43.130.13.203
+Deny from 43.130.17.168
+Deny from 43.130.2.53
+Deny from 43.130.31.206
+Deny from 43.130.35.10
+Deny from 43.130.35.85
+Deny from 43.130.40.43
+Deny from 43.130.48.193
+Deny from 43.130.58.215
+Deny from 43.130.60.10
+Deny from 43.130.61.214
+Deny from 43.133.38.100
+Deny from 43.133.43.121
+Deny from 43.133.43.154
+Deny from 43.133.43.227
+Deny from 43.133.56.146
+Deny from 43.133.57.8
+Deny from 43.133.59.248
+Deny from 43.133.60.115
+Deny from 43.133.60.97
+Deny from 43.133.62.111
+Deny from 43.133.62.221
+Deny from 43.134.0.62
+Deny from 43.134.107.106
+Deny from 43.134.109.11
+Deny from 43.134.112.111
+Deny from 43.134.118.145
+Deny from 43.134.119.86
+Deny from 43.134.12.237
+Deny from 43.134.121.104
+Deny from 43.134.15.134
+Deny from 43.134.16.138
+Deny from 43.134.163.161
+Deny from 43.134.165.87
+Deny from 43.134.167.226
+Deny from 43.134.176.114
+Deny from 43.134.184.91
+Deny from 43.134.229.118
+Deny from 43.134.231.229
+Deny from 43.134.236.64
+Deny from 43.134.26.191
+Deny from 43.134.26.28
+Deny from 43.134.41.2
+Deny from 43.134.46.116
+Deny from 43.134.48.88
+Deny from 43.134.56.250
+Deny from 43.134.57.196
+Deny from 43.134.61.126
+Deny from 43.134.61.238
+Deny from 43.134.63.65
+Deny from 43.134.64.76
+Deny from 43.134.69.123
+Deny from 43.134.69.90
+Deny from 43.134.72.28
+Deny from 43.134.73.181
+Deny from 43.134.75.217
+Deny from 43.134.77.29
+Deny from 43.134.91.203
+Deny from 43.134.91.49
+Deny from 43.134.99.61
+Deny from 43.135.129.240
+Deny from 43.135.129.244
+Deny from 43.135.131.147
+Deny from 43.135.134.141
+Deny from 43.135.135.246
+Deny from 43.135.138.166
+Deny from 43.135.141.103
+Deny from 43.135.144.133
+Deny from 43.135.145.56
+Deny from 43.135.147.140
+Deny from 43.135.150.154
+Deny from 43.135.156.161
+Deny from 43.135.158.194
+Deny from 43.135.173.248
+Deny from 43.135.177.50
+Deny from 43.135.179.97
+Deny from 43.135.186.136
+Deny from 43.153.1.102
+Deny from 43.153.10.102
+Deny from 43.153.10.154
+Deny from 43.153.103.133
+Deny from 43.153.105.93
+Deny from 43.153.106.120
+Deny from 43.153.107.175
+Deny from 43.153.11.31
+Deny from 43.153.12.7
+Deny from 43.153.122.155
+Deny from 43.153.13.111
+Deny from 43.153.14.12
+Deny from 43.153.14.242
+Deny from 43.153.17.158
+Deny from 43.153.18.46
+Deny from 43.153.193.211
+Deny from 43.153.20.154
+Deny from 43.153.20.37
+Deny from 43.153.23.112
+Deny from 43.153.23.244
+Deny from 43.153.23.81
+Deny from 43.153.29.199
+Deny from 43.153.3.32
+Deny from 43.153.30.97
+Deny from 43.153.34.43
+Deny from 43.153.37.58
+Deny from 43.153.39.234
+Deny from 43.153.4.65
+Deny from 43.153.46.109
+Deny from 43.153.5.20
+Deny from 43.153.52.32
+Deny from 43.153.58.32
+Deny from 43.153.6.132
+Deny from 43.153.60.85
+Deny from 43.153.61.213
+Deny from 43.153.62.136
+Deny from 43.153.69.7
+Deny from 43.153.76.232
+Deny from 43.153.80.61
+Deny from 43.153.84.42
+Deny from 43.153.97.220
+Deny from 43.156.107.145
+Deny from 43.156.12.8
+Deny from 43.156.2.243
+Deny from 43.156.29.120
+Deny from 43.156.29.145
+Deny from 43.156.3.195
+Deny from 43.156.5.207
+Deny from 43.156.6.103
+Deny from 43.159.131.116
+Deny from 43.159.133.74
+Deny from 43.159.137.20
+Deny from 43.159.139.35
+Deny from 43.159.144.118
+Deny from 43.159.144.69
+Deny from 43.159.144.95
+Deny from 43.159.146.48
+Deny from 43.159.32.86
+Deny from 43.159.37.213
+Deny from 43.159.41.139
+Deny from 43.159.41.195
+Deny from 43.163.0.23
+Deny from 43.163.8.75
+Deny from 44.212.14.20
+Deny from 47.238.13.10
+Deny from 47.238.13.11
+Deny from 47.238.13.12
+Deny from 47.238.13.13
+Deny from 47.238.13.14
+Deny from 47.238.13.15
+Deny from 47.238.13.16
+Deny from 47.238.13.17
+Deny from 47.238.13.18
+Deny from 47.238.13.9
+Deny from 47.242.148.169
+Deny from 47.242.149.96
+Deny from 47.242.160.82
+Deny from 47.242.167.47
+Deny from 47.242.209.147
+Deny from 47.242.217.111
+Deny from 47.242.222.214
+Deny from 47.242.234.100
+Deny from 47.242.235.57
+Deny from 47.242.3.114
+Deny from 47.242.76.207
+Deny from 47.242.77.69
+Deny from 47.242.95.94
+Deny from 47.243.105.139
+Deny from 47.243.173.250
+Deny from 47.243.193.222
+Deny from 47.243.228.99
+Deny from 47.243.234.164
+Deny from 47.243.48.79
+Deny from 47.243.56.171
+Deny from 47.243.62.121
+Deny from 47.243.71.191
+Deny from 47.243.74.123
+Deny from 47.243.75.156
+Deny from 47.243.78.23
+Deny from 47.243.78.44
+Deny from 47.243.79.195
+Deny from 47.243.89.37
+Deny from 47.243.91.206
+Deny from 47.76.209.138
+Deny from 47.76.220.119
+Deny from 47.76.222.244
+Deny from 47.76.99.127
+Deny from 49.51.180.62
+Deny from 49.51.206.134
+Deny from 49.51.70.229
+Deny from 49.51.70.245
+Deny from 51.222.253.1
+Deny from 51.222.253.10
+Deny from 51.222.253.11
+Deny from 51.222.253.12
+Deny from 51.222.253.13
+Deny from 51.222.253.14
+Deny from 51.222.253.15
+Deny from 51.222.253.16
+Deny from 51.222.253.17
+Deny from 51.222.253.18
+Deny from 51.222.253.19
+Deny from 51.222.253.2
+Deny from 51.222.253.20
+Deny from 51.222.253.3
+Deny from 51.222.253.4
+Deny from 51.222.253.5
+Deny from 51.222.253.6
+Deny from 51.222.253.7
+Deny from 51.222.253.8
+Deny from 51.222.253.9
+Deny from 54.157.118.241
+Deny from 66.249.66.34
+Deny from 66.249.68.39
+Deny from 66.249.79.133
+Deny from 66.249.79.202
+Deny from 66.249.79.203
+Deny from 8.210.12.248
+Deny from 8.210.147.121
+Deny from 8.210.15.246
+Deny from 8.210.153.23
+Deny from 8.210.154.94
+Deny from 8.210.164.94
+Deny from 8.210.176.195
+Deny from 8.210.179.35
+Deny from 8.210.187.5
+Deny from 8.210.188.13
+Deny from 8.210.189.26
+Deny from 8.210.190.0
+Deny from 8.210.190.63
+Deny from 8.210.66.89
+Deny from 8.210.75.120
+Deny from 8.210.8.206
+Deny from 8.210.86.148
+Deny from 8.210.86.249
+Deny from 8.218.91.49
+Deny from 93.123.109.83
+
+
diff --git a/recipes/files/etc/apache2/sites-available/git.ruby-lang.org.conf b/recipes/files/etc/apache2/sites-available/git.ruby-lang.org.conf
index f7e6c6bd..0c0ae17c 100644
--- a/recipes/files/etc/apache2/sites-available/git.ruby-lang.org.conf
+++ b/recipes/files/etc/apache2/sites-available/git.ruby-lang.org.conf
@@ -19,13 +19,13 @@
TimeOut 300
Alias /cgit-css "/usr/share/cgit/"
+ Alias /robots.txt "/var/www/git.ruby-lang.org/robots.txt"
ScriptAlias /webhook "/home/git/git.ruby-lang.org/cgi-bin/webhook.cgi/"
AllowOverride None
Options ExecCGI FollowSymlinks
Require all granted
- RLimitNPROC 100
ScriptAlias / "/usr/lib/cgit/cgit.cgi/"
@@ -33,5 +33,6 @@
AllowOverride None
Options ExecCGI FollowSymlinks
Require all granted
+ RLimitNPROC 5
diff --git a/recipes/files/etc/apt/sources.list.d/bullseye-backports.list b/recipes/files/etc/apt/sources.list.d/bullseye-backports.list
new file mode 100644
index 00000000..290785a1
--- /dev/null
+++ b/recipes/files/etc/apt/sources.list.d/bullseye-backports.list
@@ -0,0 +1 @@
+deb http://deb.debian.org/debian bullseye-backports main
diff --git a/recipes/files/etc/postfix/main.cf b/recipes/files/etc/postfix/main.cf
new file mode 100644
index 00000000..b13e04b5
--- /dev/null
+++ b/recipes/files/etc/postfix/main.cf
@@ -0,0 +1,48 @@
+# See /usr/share/postfix/main.cf.dist for a commented, more complete version
+
+
+# Debian specific: Specifying a file name will cause the first
+# line of that file to be used as the name. The Debian default
+# is /etc/mailname.
+#myorigin = /etc/mailname
+
+smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
+biff = no
+
+# appending .domain is the MUA's job.
+append_dot_mydomain = no
+
+# Uncomment the next line to generate "delayed mail" warnings
+#delay_warning_time = 4h
+
+readme_directory = no
+
+# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
+# fresh installs.
+compatibility_level = 2
+
+
+
+# TLS parameters
+smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
+smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+smtpd_tls_security_level=may
+
+smtp_tls_CApath=/etc/ssl/certs
+smtp_tls_security_level=may
+smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
+
+
+smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
+myhostname = git.ruby-lang.org
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = /etc/mailname
+mydestination = $myhostname, git.ruby-lang.org, localhost.ruby-lang.org, , localhost
+relayhost =
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = all
+inet_protocols = all
+smtp_address_preference = ipv4
diff --git a/recipes/files/etc/systemd/system/apache2.service.d/override.conf b/recipes/files/etc/systemd/system/apache2.service.d/override.conf
index 9792c515..0d151d79 100644
--- a/recipes/files/etc/systemd/system/apache2.service.d/override.conf
+++ b/recipes/files/etc/systemd/system/apache2.service.d/override.conf
@@ -1,3 +1,3 @@
-# Override the default PrivateTmp=true
[Service]
PrivateTmp=false
+Restart=always
diff --git a/recipes/files/etc/systemd/system/git-sync-check.timer b/recipes/files/etc/systemd/system/git-sync-check.timer
index a48e8da6..daf70c94 100644
--- a/recipes/files/etc/systemd/system/git-sync-check.timer
+++ b/recipes/files/etc/systemd/system/git-sync-check.timer
@@ -2,8 +2,7 @@
Description=Timer for git-sync-check.service
[Timer]
-# OnBootSec=1min
-OnUnitActiveSec=10min
+OnCalendar=*:0/10
Unit=git-sync-check.service
[Install]
diff --git a/recipes/files/var/git/.gitconfig b/recipes/files/var/git/.gitconfig
new file mode 100644
index 00000000..2d697f3c
--- /dev/null
+++ b/recipes/files/var/git/.gitconfig
@@ -0,0 +1,9 @@
+[user]
+ name = git
+ email = svn-admin@ruby-lang.org
+[push]
+ default = matching
+[pull]
+ rebase = true
+[merge]
+ renameLimit = 0
diff --git a/recipes/files/var/git/.ssh/authorized_keys b/recipes/files/var/git/.ssh/authorized_keys
index 22a105fb..2771bf85 100644
--- a/recipes/files/var/git/.ssh/authorized_keys
+++ b/recipes/files/var/git/.ssh/authorized_keys
@@ -5,33 +5,30 @@ environment="SVN_ACCOUNT_NAME=aycabta" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGj
environment="SVN_ACCOUNT_NAME=ayumin" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzSzkZpCW9Seiw4cK7UP7BfTnhRsTk/adqdsb0qKYAYJEhMWOhFcNGbNgFUR5mVMycRQIEBnQrSpoGRBjH4/Q1dORORR078laXyY0otfzJp/OtKBw9SAE3m1y9ogcs6hbhKiinLl7y8eKVW7vczfS0Y/1WdyFtYyRnzk8twotgkb9W2CVUDvA9ECAlH1HvTR4CnlUHIM55xEnM5vwIR6pUMTYdU0vf0KGmsIxjjGsyRRr5e52Tqewmat0ypmiOIat2fjQc3Si5ubHZHrsQaBeupRjtsjsu7GYjKPr8985OJA+wZjeRxR5DeRrNAb7pa1pENPHdYnSoz6kvsNWAxhRkw== ayumin
environment="SVN_ACCOUNT_NAME=burdettelamar" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC09YYLe9VMHQyI4m/1OtlxIysWweE9L1zumH9JAWi/SQssuKWtfJL9aqT5ZMoZF7PNNeRNHUDgrMJyc+iKwRQdKTWG+mqO+6qLDnjy+C2CrqZ8YGTfUZ6mlX8UwSUF01Lz0GbX2e0KBQp52FB00sfw35M1ha0yQGOMPnfdMMBvZw0t0UV1GkGqsVOIm+8zusPeii9LuPHekHczRknqocSinOWEEkIAu5t72X6hhTEUpsWcVJ+XCtUJGEZjlb6lOICcRbLYbE68EGWiozpJ3IbOJ6C+46HG4H7yuILrVkE7R6esdHnLhEJcGibqRvCNxMDW2j6CXONQZIpVzTyBf9Cz burdettelamar@ruby-lang.org
environment="SVN_ACCOUNT_NAME=byroot" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3xtb4T4A6sMxgpiXNID2WogA795Gwqw8FttJeTqKFke8ZTuBad5A14aHXIKsIH0QwbGlluNn11HzUGemHsJoxtgbaP5QKNY2fyhM/LCXzje1U3qjIGKfN1QVJCEK94ofnb+Ao9dmDQFWkGElKFtLcoLF7Za8qGwtWp08b9cAZSaX2gokIo57kO/5BirKfizZKn1zxGH//a/7gQ0DBytKRrVVZBH9CbD6sFyAXbhvoBFcLij5KgYWUNkIPtauzhSU3Q7xXDSZEXjy9efH2HRxj0pLLJqk/VhMxMW7E7fMz4DAVn7x56TVjwxwpOBBg3L89X3WqOZN3XJhwSa+modsR byroot
-environment="SVN_ACCOUNT_NAME=charliesome" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyKzQzk3TZWPzIXbl/uL1AfA4W1GVI23/16JGb3b1T+z13KSqdw1tNg6siQOUTRzrOBSeQ8ZzdWqvi5Vs/K4SVJZKVi+KQiI5FMBPXyM3iTgJf6cnKAeVA8oUTabkwHWDjYuY4tQqgxXHtHavK3RYgcykKVkGb1mceUGGaKSR/QjLLo9yqFOh2Q+cU3CJae1Sq1/tS9swAq2+zV5no28itXIMUhAMcu9ntjtXp4hF/qc5jHdbipuCO8E35p4Xs4iTIhlY0X+PAcdtA44o8F06C1CtEhvMlN3ZcB9+EQYdmimmWzqYXhma37qppl27Vq0HpejKYuqcJd3ILPVh4mzBUw== charlie@Charlie-Somervilles-Mac-Pro.local charliesome
-environment="SVN_ACCOUNT_NAME=dblack" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyFAfqqmBeGb3j07q9u7GN8nIPqgPz+xFkJT3RS+b/nT9OHLOy3pOM5q20/50Y8mAYVqw9+J9RWQwFPFZdEw/DExuI+dfzzkPPsJN1DBWRhWae4N8dOh3kLOG4GLEvMw5r88B5EW4VisGdP0tD/KpQuDaTTPY7wx6f10JgtCH+1/JP4NJ6/ww+iVbf+O6DoKZE8q1G2LNm8Q0i39SwRbUd1UaKda9zd45ERod089XPZcHCvVoFc3+4JMy97Rvg5EcvidH6XTclXXqvfaOqggOz/SgLgWSwzp5gMo5kjCNdaaWNroYAPmhsriQV9Ge46jMc8M2URAGCyQjBU7ri1pBaw== dblack@david-blacks-macbook.local dblack
environment="SVN_ACCOUNT_NAME=duerst" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAj3xR5x6inzlL8Ot6eVvPB1fmIp05LHR0Ga6PuZDn2A2BmYN4fOhtcXic4jWMJX2J34Vubt6/gWjtJWkXsfuzEHl9BHRwl8DGayjyWbAeDfHGv43DMbD9xilXx4/MU3tXMzBolFxlRJiU7KkCE+WQgG+b96N+E4HKOVzGOYwBBR9are+Do7sTsHCM6OLLgwTp4HGLpbArreCwPN5TPOP7aC8R/J7V6fn7ZBzyWrsdmSZrBv09G+sKAWuyoDJv6ctDGnETWaeR1yE3wX+CVZCaJcgBXZHkcxFcHo7z4sE1mQ4YczrC8ZEU46V2Uolwekc3HwLG01Dcnm4pc4H8ElcLjQ==
-environment="SVN_ACCOUNT_NAME=emboss" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA45B2ZTLlmPsU9DowIhPQTQ7Rxn82bDY7CdQRiyMlViXb95vPXCNP1kTUA2luJjvWO/oz9t+IKDI5D8Dh2KWBGXQh5A9SAckq9R7PJIBrjB6atdYKQ6vHQNtvOxo3UE0Dmjjpv03Eg161Qs2x9ZoH/tblf68mgdklsa0ZfRu6oWfYl8KMdupbODrQNrL5jDVHGo4UhNvOvLy1yS9fLRc3GjFdRXPL7Ly5zBby64GFSHRmoBMCMffljWjrFpUZPMDTWw0zR2Xbs6AHmzZKpOSN6wA1rlZ4Tpx0giecOL53LKON0JRy5ldWMashKHU/c13oTw5kBPwm5hKzv5dxUBvEdQ== Martin.Bosslet@googlemail.com emboss
environment="SVN_ACCOUNT_NAME=eightbitraptor" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDED3+ar71Fr/vNym15QRnWFHkcfSa58gtmER/3UTT2RsB0mAjbb2E8HgFejOW+dS3nnkXo26iw/i2rxNKiBmYiR7bVf8FNaqAYJ90OYVf9u+AASQj+M1WFJaEskl7QFm1+aXSArdDqBysvfGMWPES9AbhnzoGQkhqvQ9qCcYJOHJyIXP0rNk8ihJWstVRDC73oW+hGDi0cuAdIzazfQ1ci95OpeNKWKXTkwALBdI6tOJucoLu+fO2JiX+CqS+EqcJxipBioimN425SFcU31T3CclQUc53ZpMHSriMULoUOfYogJHXcVTh3i9oqIPIKPPOReAXPxcbu2mWfQGe6HJTTI+WaWH3ezh108OWnjGRbUymjaBuLSBSZfpB1yjEyKtN33Zu/eZs630ncrbFpPvoiTs9uAt10NzWEGAMPikJFz928HIJ4T87EwI21Tdb3CeZX+puv0rM0uZT4hejMImZyj6XfgfmEDJFtsbVquR7RLKkMy5TRnbdf/+3r98bv0Pc= mattvh@kyouko.localdomain
+environment="SVN_ACCOUNT_NAME=eileencodes" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDifSqTn4IaJnI/qqcXn7iS2FlD5uwChlABuQzBpMohmjRWAva+bXFLgnEDslkc7M97F5LUf/6gI+oOUkBW91aKGUWKEAZ0335j7DjnHTMGWTW2E79zraB0RnKEKP8fT8//Qh0KC5WsEkjuiPgpxJkUoIO+2esTwHI16Zvtq0P5V+VI5eJsdVxt0ccsChcYcQNZPn/ikkRwqnLGM6u2/Nl9B0IbSoBGvvr89b1HqS9BvuWBeBYcdAIH0FGmuWjSFsxd/EPHuNnEl7n4JZEiPvo6tOnrAIYlprb8c6mdZ77fB2vZzdmoVHdQK0lEYcVAMiC9+YRXxJ9B8i0Zl77xH9TXdajMKggmfppQKblrGswN8NUu201J50Rac5ZR1QGND1qTVekuKizniLNAnXV0err3AEWGd1G3HkiRzh8Sbzxu8I8fyqscY1yiJNPt+aySuESF+rtKT4LNTCpgjIyZCu55SArt8+tcVzcjqf6zlnzPUiSSXfJz3r6CMpZjPEsKNT5pJpSbrjzv04pM1Xne60mSiyatXHgkmGoEhK21Femoiis3AGX9JqZQAiqAw9jew9j0tAvmYgdPqJnU+N7vekVPtBrVCUJjPvffjcBnvDE2cgBRphxbxitEiVjUWZkRMrEyzqYlKrjvnG3jd3kSU1hCwAnEfIKsqGX1oM/FRIU/qw== eileencodes@gmail.com
environment="SVN_ACCOUNT_NAME=eregon" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz/dEF7yeAjbZER9e/PYFg01OEZrHuW/NsFilFsM1v9rmSMW96MbOX1r1issMmND9HBaux0uPrZkEPH6Y8teg834SM0tftioVFM7Ei1ZC4otBnxAB1x91LSoiLKR/B+Yx+xsDOqOHKHhDOm08HZ0DI2gMsS0zOjHXvdYza8ZWj5qwnN0beqPw3jHwbc0OSBZH+QTIka1NPWsr+FlFkuvByFJxk3VsktzQOLKpmL+r77VCThqHTW5i+FI2VR0QFNUDzG/SAtK7YW3C6mjtRuqYd2markb6ACqejADQwJ5mDjGjymUSNUC2jGbg7eby4TdbP2ywgDFFxPRnbTMFinaznQ== benoitdaloze@Me-myself-2.local eregon
-environment="SVN_ACCOUNT_NAME=funny_falcon" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxh112cwh5S5gASt1+wAO+fsZViAaAQQPQavD2rLrYEJii8HkQu7Cy/gl13Pwqoz2eSmxo59MYBMsV89WE4plAWwH6IM26V5AOcVP/7cBm/MFEfWjRBt4aAcjYnlqGyy+cOvyt0PvOxpiWKn7LvBCvFd0Lpf2HegSHZARMEnKjA/xQODs+ulOH0kS8aOMwZykIjiltK7KUFvskMojrCV+fR32kS9l5mTN2pgBlKIR5XJLrq4Hux6aNN/n56qPSgX6QAA4eL8owpyMSnxUs6QivHaiPVleCXl0rCOeH7BHkxzUp1Dq5OCc2JHT5K6m/Vw7b0RY5p23HSnuc4SFFc9ElQ== funny.falcon@gmail.com funny_falcon
environment="SVN_ACCOUNT_NAME=git" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsDF1yrm9BOwgkzxLZsAOaVFjYVrjFkT6A8kWOKRdT2kImrOqD7r9EfxWvHpfZPh7BJ2cYGEWxxLOD1W8trO4DVm5MAnRZfxr9lX3wzbF7P2JQPBJlBzLGPsya/gG7xdpgbIwF7RSs07n1eA4YqjRv7MzcTKoOc5uCNeAxOnwh4W9gOEi/hEPKe0vKy3kCWKtTdeGx2yVMKIF1NvZlOW2MoacePDTtLqMQLnK5qywsvE7R8mWwyx2m1d+9o/YMCYHdVBbQ1mMDP1JoOc7NUDxnbsZT4ZnVzaWQuAE+wYkksuX0HbDz7PT52Y6CJ621m01QsDB3rKRZAd/85bo3GNvJ git@fluorine git
environment="SVN_ACCOUNT_NAME=glass" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEApHGP4iV3a7vAEO1m8nDQsnxCFiCFVdWPuJuohA5DDgQkRD4ydCIVKIF1HuycHdY5KFE8BQ4aeZ3PvdPPC0o38rCOSVom2dLKrQNmqL02c92dfRP7MOCBIp2PMMz0tDkjXQI6aJsUmkVHTRpPych3KbA/Vn529l6Y3bs6I8CrWhUr7iqHxFPjPFJEZwRiLFH7oAzRWX5eWuXGGXmpwP1kYrWtte8YygAvM0eUyekuf4q9zu0Z7FmkJabU3CTx5OCoUWzY4hlG8P3cApCHPkMW81bod5SX7RsoqFIGJSq4kma71PBS8zCBYrYgVRWxM4jVtfOuV0eYVXgm/1oDoE+x9O9EAjOXWBbvtsrVb0ieWb8NNjr78HwPoRepvIJSJRDHdRrZD8UMA/Gy+6lzYoFNmX7TSaYu2x/9LYUu25ZVW4+8mHSYmyDFt+qZurehIov4zLvzhX726T/WsZx0Nnfwjd4X3t7TNiK9y0A8HuMbpvahvHrpn8rr8NCsq7uoHWYNhbV+4YkAi2AW9Hfjp9E+t9UQ03sjNu9MR+Km9irK0HWxdnzdSBNtJbGZSeKTM0F+Q5x9v7QaTbPwjHSte3Fuz8cGVQsF+t1vC+jp+dpSov4U+hZ/rBD+PtWr3pNKXdzPdoKj8acfH/tO40Fu0xzsi4ci+68va1/esZdQbEadsgM= glass.saga@gmail.com glass
-environment="SVN_ACCOUNT_NAME=gogotanaka" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHNS8EEbBljyI/C77Zm0m2RmBVu7UoAQp9RaxtY1I+ktPfGCF3s70j6U+BnEXLo9S8bHB4T1lmtZXkQVza/AiZkPJ2nlzgDrpnyhtfN/vPvYp+wNeQI9XAJgzL5TahN7055dLjS1MjGeUMrbut7nnNyZ9fWIv0rRoUFfZxSSlsSIr2qW6BFD8pzxa2iZS281BHEh/zNN65qJ5QMc0YeuM3vFHC8fKSflK3Sq2XQUcmCEIEchLkFriexIC0sPSZ2AOgucjaJw2l+FGUhYV5g/qrzM7Wl3oFPldFovfUEhqkaXFqiHsDfr+uzDLi0BD/k9imB/3TaP/JDa1Pb397On9j qlli.illb@gmail.com gogotanaka
environment="SVN_ACCOUNT_NAME=headius" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0T4mlsgQS+etyEjxj7lec25FjLxtSwfDH0nToUqolOuyyhgeDj+SJprJDH3b4QudSGY/VRj7wiQKs3NgqkDnCfNCJEjmqPkChcvwzV4FTJCik0JgxflxZ1Q+oEKrYu2txCfb50HHQs/hY2Symm+3de019RxB+HSU7MIG5srQNHSabrF0ZhDSS31bdkA1ZPG5pseKpQomi/yj/npLSWy9sA84owkGgDfVLq5KMozHpE6lQ08yFxMEEb7Wi+TtVUs4E8chIt53tX12qiDgvZIMvZtS1mZ9XazlmH7SpYktCkBAuz+RihnBLNzT7rxUA89sB6hyCSh3MW7f9yI01bNW7Q== headius@charles-nutters-computer.local headius
-environment="SVN_ACCOUNT_NAME=hone" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0zVL7SWnhhN/gayRXUTvg30YNtDZACniAqgcq0xwmYgL6Mzh7lT8gY7wXWJyY9Kud40PaU1U9mB2WUjh9n1AgRCL/AZDDJrWUIvyMDkumxmi3PUvptHCmKYhXx7Ji2CKIQuRR5kRtKaPj+9GZVtk+52IKOTvQqcvUdWScp1zeXQ+tlwp1+K24Ge3TSdAGXaoOVUMWsQLY0oaO+WfNd+IFuHeQsSssh3rKSeHaFSCkPynQxce1TD75wAb/AmcX65d6FuwnyAjyvmEQPaEGp/KN0niDE79SVrTR65+cw9q10ApDN1AxN2FSt9EE04pHyTJ35vT+IXlM8rEoO0wi/R99w== hone@hone-laptop hone
environment="SVN_ACCOUNT_NAME=hsbt" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK9soM0r82SN3fO4MVhPs9Q1OCYThuR9POvbhnP1HNph hsbt@euler
+environment="SVN_ACCOUNT_NAME=ima1zumi" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM6e/yGhpuKG5uUhL7OjnGuWpkOJqa1lH7WuyhlanT/h mariimaizumi5@gmail.com
environment="SVN_ACCOUNT_NAME=jaruga" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGFd9NkGTvgHAue9sy/HbO76m9pSnRm9UngCX98NBXTjZN1GyS4I+jF/uONIWiS0Iv4ruHTxlsleIg3j9meZBS95VhdLdV8yojLIwpog9cPBSlIo20lPy+cAeBb3zaVIYHbnn3oAVALoHsix91RorJSdANNTi98SNkrtz0l7OyH01B17EM+wg9RDyONY/wKQh/d9nu1iHrO8rjCJKyU29rJCOALH9mwohdVNHJhJj/VOoLZKvLgjGetPOuBJgk5F4uVtCYpiJS/Sq9qPVCAadN6bwXHFIodIz4ku5MYryhhOCV3V4u3YRIAzZSB1mF+VShIimK+o5qxmoD/0H/BlutELOqJuplY2ssUpzjKhZJeGeXeXk6Cg4j3Wsf3BJZYaDypzekSVn8TIEOYJzDtv1Dm3+ZOROJ/egbL4pQP+EoAO2aIAhMneRtMlpwSctRvK5C5bLJm1Z+6AfQY3fnfrzft3y0K7YJWHq8V5hUKn+r2RhzgBDKx1tcxoobmE31nQ1HiW80TpQlKpR4K1KnGKnkuQu4pe/YJKLW9vodQoMIGOJ51v0DOd6OB2VlZpn6RBHpN4oeLuEVsWinq/VcppCXeF0cqmvB3nTOCwn3oHOCQgN/UT3Np9Mh9CUWXE+wN1vqqBFEPscAXobYlp2IgF9dZ7tY2xuEdGY0qBouM7zlmQ== jaruga@localhost.localdomain
+environment="SVN_ACCOUNT_NAME=jemma" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzWMlqqr350ltszjfA9MtXYRnChJflxYPw3sSITBbgbrqGytzzWkIKadlYa2tHYGgbEmz1FqHIQoR9mW2QXCgBdI3awO8rsWxLc5af4Uweb+2Qo0+4BBJ9Ke+rYJuV4QGYy0jsK0r/aJhxQhvanOPSdGacXGqns2R9mSsIotFOUI+ToAVXxGeI1YeDcnEj/281rWXGFJcwpyXzH2h8199oWb5gbR6qFJZD4OkEbY+Ym1uwTwdwaV/jLoLo1VAnPq5y9Y8+AoahvPqwGX8R2bfAXFNgQ8J/owFIynuSR6Dtr57Rkn5sjV3vP5cmkfh5obdILzTylWAXZxzINRBq9/eloydjJgwpJWGJLPwSSVOew9us2G+Sjq+zvprjo+JTJum82FUnUi0dNoFQAFapBdpPkUBZZNgTkzrkZHuuon/wnDiLuUJFrAJVaZCOm98G6HoTqOXrv/9pG2tawhMU9qXQX1aAVIB7GpGjZuBPAspwYgnds8vQmaw8QZJvkDngjCk+Lef9A00ZjfHVtfnGPi+TVloOLk/hjgfcX7KRTSAM4gUtU8Tjlg2nr9gtAMTPDWeaRNa9u66qkq5/Eeh4dab2eL3V7lL5Y9gw0S3Kdx8yq77l1tYQlOQgpCw04UpYbY0U+edUU8Z9JZ3z9OukheCVz/pgvfimbYozFA0x9/631w== jemma
environment="SVN_ACCOUNT_NAME=jeremy" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE1s0ie7GIiU3kIhB6Pb0LH5Ljdb3oqCLE9Je08M40c3 jeremy@speedstar.jeremyevans.local
environment="SVN_ACCOUNT_NAME=jeremy" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwcDSfizu8bfaJ9Z5h+375qCiuJ4bp2kf8shO2fhmwC4KFG2al398BpUjlsZVHEVDIUGU3rhM+GHEUGvBF14rke1aSR+rM6RHeXCoWHCAdy8tvm9PzuAUWsM97d6oEKIchm0rOaJ0GX95gVldc190NfzQQ+vIUthxjxuPWXtKzVpcJiZiF3AR7hST+u6oUltx64sdJ0aKc3xhWAG48n8CIrQlnQZ0bLZw4Jtz9y8jinL6uXHQ2I+3USyeg+OvDPqThL3uo1IYbKfMdPaxW8xR7a6dnPex3Kx8I0Ay/KRdMHEfbUeN0zclmbclqVUa/3qRKSbB5uod8lYkpK2sUisFZQ== jeremy@speedstar.jeremyevans.local
environment="SVN_ACCOUNT_NAME=jhawthorn" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ4FsiavriYpm9GKVP2TEztHxnzwiYRosx7fWI5LN3cl
-environment="SVN_ACCOUNT_NAME=k0kubun" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDTBqmCx8FUX01dLomDUhE+El33VsKMpDF7aTj2p05NKrlUmIfLD0BKkVUP1yLlJpDZsz83oogjlH5XZl4q7AvH4PNCbIiUuXxDeJevo5hDpqDaaBSDiDU0WRF82sng1bDrLCjXVXsXQ/nQLS7PsWFyBIlunnRHSO91NnZwhxxJgp9K89a0tFpTn/koRuW6b8om++1UtoY8+rjIC11qtj9G1hj78rqeJmNtWdoJsIG5qcjNl/DikJBhTLenAOTwK1BzhHdo0doTdZzal+6koE9fZ/lv8DvAciJr8IDIdHd73XJKFlm7GcOZ3EO/1N9JUbNHDCd+dWFolTqWghxa9Dr k0kubun@bionic k0kubun
-environment="SVN_ACCOUNT_NAME=k0kubun" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDX0n3K6bPNpOGWQqjv2cX5EQVs6vhQjRFTvu0sKQUHsx2WkyzIUvQzXFdBzoPo8sP3JyAOnXI46TYrHuILvInEm1VKBK5fVUio4kUqljiFdWSDATMmA7JTlKNzKXlpNzov20cMjpCQh+sBoGk2rDXKG4pZj7VBebamTiFJAhyeDh54WTO2lHTAL+pkbKQ7MVs9v8VZOPHX+sSAyYDPd7p0BFGxu95oSoYLMYdufCIjO0ZQJNp/i7Uo+YJ5oHruQn5akmpI6p6JfT5HbbnuapA+mQPediydbjKWMXwTRF82CEZWdL9S5YeL3VBSjjBE441uR1GRnkMsKsYb2/hC97a7 k0kubun@xenial k0kubun
-environment="SVN_ACCOUNT_NAME=kanemoto" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAt1/3mzBCtD2v1sIqBxvvqPOefd6jvUrEDzDYoXgW5tRieV+UmdQC+HZGeNURzl6CwiwLR6wHziyOyREsJtsMtdHiAk7A0pbaOVT9sLAc01gHYB3k6eXxt7ybB+BdOsHgEtgJUvI8JTF+E26IlfM44GYJbhlL4aEcFEdZPXkolLLWY5+qXe2rizPz/bt9vnc4b720AfQC74JrtRalbCGPawLcV7y4smLE+kRjmzS5o5rbBe6kgyZ2n9X6IguPz+Fzy6YLzEiRL7uD834WK4rD5vXPQTSiXiO3apGZSu9q+MDi4cGTp2eXzyFsTHOFebKGfjCUfcDqgrtjfCTj3f5pXw== kanemoto@miggy kanemoto
+environment="SVN_ACCOUNT_NAME=k0kubun" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN1UcvTB/sH5hdIaPvH7lgixOB0APaeAOMlyRwrq6NqS
+environment="SVN_ACCOUNT_NAME=k0kubun" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDTBqmCx8FUX01dLomDUhE+El33VsKMpDF7aTj2p05NKrlUmIfLD0BKkVUP1yLlJpDZsz83oogjlH5XZl4q7AvH4PNCbIiUuXxDeJevo5hDpqDaaBSDiDU0WRF82sng1bDrLCjXVXsXQ/nQLS7PsWFyBIlunnRHSO91NnZwhxxJgp9K89a0tFpTn/koRuW6b8om++1UtoY8+rjIC11qtj9G1hj78rqeJmNtWdoJsIG5qcjNl/DikJBhTLenAOTwK1BzhHdo0doTdZzal+6koE9fZ/lv8DvAciJr8IDIdHd73XJKFlm7GcOZ3EO/1N9JUbNHDCd+dWFolTqWghxa9Dr
environment="SVN_ACCOUNT_NAME=katei" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIezAMzVD8CSCNQR1mnvyWxg8AcHn3wJ2Yoj9YPhHl6t
environment="SVN_ACCOUNT_NAME=kazu" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILpK0tF51R1sMBfYpLNNogDQEVuM1twtKPlH93EI/q+/ kazu@elk kazu
-environment="SVN_ACCOUNT_NAME=keiju" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYvH6am51Z2FGccAc4sEGkN7OpNQhtb6/91bxBRgLyShHxmYUxH24oSycDv7CIoKzIxQih08o92FUxmrIK4LmhULW7vZNm83cMS7bIaZNPYVURaLzz7xKmUc49o6HZFAsMPPg3OFvdPVT+QEpAFujZ00X9sPK6zpsd/xnhj6qyAXfw0oZqNtXpTz50aSZTPn8D+GAWZb4fbZ+danOJZpUN7YwELvybpinbFj+nOxJKFrjZ+mRLhiABuiJ26oNA7kOKE3tMdPjii9qDnFpUjDkDxGYjxryU207oT90iizKd/2joVi69NuOTY6mTDf1hlqOTlRqBORw7va1remBRy9BvEL+T+dikJHu6B8qU++8pBUAGkT4tebfOveLdE5/+fasJ++/1H/M25fSMAbDNgsJS3EnTaw4A2XchFH6SC+6DluJHWMnm3Z1w7IOlEURzBpcVpYgALRjY+coijfz8TEIgSwiwUWLUSztXgILoO7eKXjGnOPHEeWl/HQFJlE3GosxpWj7dq8p8FQKodSdf5WXRk3m4tS2oy2r0odjURHqXQASdPxvrF+KF/FopwmWzazj23MDBP/zrOeU0oqyHjtTL8LExBuDcm3JnrSKdHxlWI2czZrpZW+pa50ykSC8f60KiJGnjSyR1Lz4kjwxuE9yLqSd4gTHr9iJk9+u3fhcgkQ== keiju@ishitsuka.com keiju
+environment="SVN_ACCOUNT_NAME=kddnewton" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM/AuoRT838IRLsNvGpOBoRofcWkBR8fsxE7GSZiwLnm kddnewton@gmail.com
+environment="SVN_ACCOUNT_NAME=kjtsanaktsidis" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMFmr90xpvG/6fJ1L1g+fg+2J7eZgOTcT3MTVvEfcvvx
+environment="SVN_ACCOUNT_NAME=kjtsanaktsidis" ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA+yrdwdfxsfBHyZbMhbPS5j2owyD3uNUMrQFbbNQOpiysKXAhCWfwOPuCsSZojKcsHXgc3CLk3tgPzO4cPUVNI=
environment="SVN_ACCOUNT_NAME=knu" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINNlg0z5+X9xuNP4jQczfNFv81OLuSP9nvQgtPvrmk7q knu@ruby-lang.org
environment="SVN_ACCOUNT_NAME=ko1" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAnmC8r8/DbTKflE/TU9KHOOTutlPkg9WFs7LDeJMOPpxX51r0wFgBUB5k5/lN7itozgEX4Hgz4lN0ao3FDOdSkLYtcG/u0nrr8fthra9tKiU09u9GmZAmqk+Vw0Ldj7JPX69b2jiHfF02ObQlgKerk3+XRVTXd7Ao02J9gDx97D7sJXXi/Cdy4T3h4T37zOR56p83E9VKFXg89tJbNLKoQiWEWX5cQdqcA+JgyyxcMdaGbmK41jxos2W6Ud0A69gXBhouvbBVrALEpSUb/5uvR+bk3uFNJ0AewfyPJpgIBPWtAPf00V2lxK0wbUJb9aN9i5rMuaal5KgoirpLREHKNw== for NaCl Servers ko1
environment="SVN_ACCOUNT_NAME=kosaki" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMi26qZaTy6S5IUnZT+YXjKrPIkWNMrnMmwTIBROo7aK kosaki@vm-32cpu
-environment="SVN_ACCOUNT_NAME=kosako" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoY7v1wJY8Aho2+mbUCzRjWUFZu0/YxiCaL7QlRYOy5zdsMwhkePOGpc6sWBAAUKjQoCoApM1Z5M9UC7UaNDyn7GAGqEx64LlN2YUp5nPaF147c9if6ncmVdONxN28YC8ie42TR+p8BGrf4oKxbqx7+Y9Ot8QAI+AS5oJMyCZ3+906mhPAphzg0NOnpn8BB53aQgZxuiK4Rq8L8EnpTZNRGOcgR2nKhfOeRSPz8UmSkK4Ug0AJDum3O6RMDTz8jNlGZopnzyj7xM2hGT6lT/7d2lgDsZQ4/OglsvrSTgib6f+11OMbk9EKE3HheeQ7mA1xcJI2YQLFAujxBktA+LiNw== kosako@zero kosako
environment="SVN_ACCOUNT_NAME=kou" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnyNhU/qmDpE2ZrHa+1yXepFbesvBpv2Ltol3ryb15l8zxOPXPwQaQ4vX8ynp0SFqJzG2GZ8S4BtDJ7jl3FSiyaIYa+jvAdDzqWk8LVrGJwNMGq2iDmYi531bk5pqS33UaKG9oIYaV71biiTx3meoJP3AmCnvFvz9ZoZKqYVGOulRtE0bZqB0IsxyzOMfhHqH3I6UJjsPqqXcgSFNhVRcE1U3fYSU9WajBtyaI6eRO3ccIemDPZOQTI+KIkyagp6DXj/dksxxxaQ185s3CLI6y5FXyw5c15n5R8vAvDYAXEZGltvLFiBiH1fdSWnQVD9Vj9RWHBkIFcMehMkFwpIM5w== kou
environment="SVN_ACCOUNT_NAME=ktsj" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAx+Kf9Sy1fwEUNqQvG/LUw2XvjRfoMt+eL9D+cgVe5QgSqPbBWNMqxpAUcpQW5rRCdlPWHLynjU9B1Pd9Bq3Vwh9y8c91p1li9YJzz93oHdoSbFJb2XSdxeLyyXOavw+pdO/JCcJoP0bZBATPzSnuVD2GTHjj3+wXhWbUdwBacabXT4+rmNa54t1u/lXX5yHKHlpEpUGpKWO5FdfB5lwfRCNKHv+LrDf2zBgQVyYWTggHTeA6M79FOzqOW8gINi54qHndMhBPHlcZz5yqMUTKqDMEL/z/rMRP/mvKTpezDAOFB1hE+vMHIIT4ccTcyGPPUEz41w6+8K2rFdfb1qv/ow== kazuki@callcc.net ktsj
environment="SVN_ACCOUNT_NAME=makenowjust" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDM+bKE+CkZJcQXjP4gArifrJkYCTOXDBlvYI6S36e7B9RFOTGqYoHz/PQFmcXyzlQZRR38+t0KOliGkhhTBT6mVIT6VDHYN3a4RHngiZQeQhx/u2DkBduEbhE4AdKcSaKpBuGiuyFa2OXbRPMnVY2iuUsnFlWlyESz2nw+5FbkXT8dCzaly9Z3257BEf++GPM5ojwOul1u/J6coxIbuWq4lgUmyuvPi6kxIEvoiDZqMk4IgpqPpAvSXIs9YVdeK3fZKTfvNX2PMn6oZ7CEQJ4iiJpbKsjLjQIbGFl2VOR58X4Qp6cf3cDwZJ3KlYTp2eePfkr0qhc4/u+yzdawgKHUwZmKKxidLtWrxU60FgMoUTYNTrXUfK929YF+zjmpnBE9iZUNTUk7dy4gvuGaah/KMhsaD0QPu+NptHfKCp06J8BhxFTmJ7+KZjFlBMAojp3MEWToP2AlOP/AXV9yIDpdrTET1eDjb1fDYDXvVgunkbqtyYdbbT61NgxZpyiQ4IdnGWyR52vq0M7UJTCWyOycj1Bd5LxppSSaNjnENsi//2xAdqteB+sPpPNIfTMPDQwfXaClk6JU6U2tZTBPQUv2QxMKhlzMGlIL4yNZkgiV7GIugnLZC/HjI2qZxFyPPXn+9U8M4KhUDMapwMX8wNoaHiVtruKgsRHXeDtP9ayolw== makenowjust@KitsunenoMacBook-Pro.local
@@ -50,33 +47,33 @@ environment="SVN_ACCOUNT_NAME=nobu" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBHTmLI5
environment="SVN_ACCOUNT_NAME=normal" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0BnUlAXthqVxirRDQET7ENBC/N05m/dWiLSrSBu690mO+ZLjSnsUAp0Yz/S6xheVzoQDq64ezbZaC7nD1YMAreq7QKqw/XpRIi+IqxtFBFWKCecGFg7a/Zrm+/k9Wb5pJZegwhmMUBJYQ6LfnfTh/n987PwgWfAQYUfQO95nOPWu3GvJLhLFms4p3aiNYKLnWfNGg0fNjf5cFvWSiuT0BmNxCyaLPZDMwvhVRV57DPyFe+oSixOTIVUK2WjpgrABYXvDZOVO/DAMhi449ltCvvTBYEjHPgl+c7eDSpHA3nP1qJESt4CCeJEnWjBVypQ9YAizeWDrysqd1B09WfK/1Q== ew@dcvr normal
environment="SVN_ACCOUNT_NAME=odaira" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuthmDtlvEbnqDgW00t/56yZRG1cgNlWgtIFkkaviphHVCKgpwLOzhA0pMA7qcT84ar6ziEg44dN93FUTQ5DB6poQpn7wDJPYokMmUxfSUhi/+DUdq7NiQDevWggTgH99TPyQIJYCiC03M76qDZCKW4C1q0+FztgV+gWTD/mL07PucUjiqTk272QLl/jGd/8mJ76p2yy+HGKA1BHDNeDQXiukFBhLd92SKXeA8Uyy63BCXuGs/Ys92qGHuCOO9+EYXmFIcV9phyNjD6mrU1sRhpWFdl+JipPow0JbVNZRctIZ3Rl3cMv44X/HJGsBkMWa0KEqW8wGy9i8b5hEpGnrKQ== rayod@ss odaira
environment="SVN_ACCOUNT_NAME=okkez" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmqvlrnrSDD+OBSr1BNEhnPD3O3UOI6puAg7RLkn1nwfb6327ZH6xGWOf6Jm+Sv3383Xvt6Dxqrbl0gHICjMT+47c6a8B+76WRX6vg1s/Lhx7YyW3zOk3CmVg8KJ+px1/qwYqexYy9ud+eYnewO4rbI+qvrEpoMWFGE8/LkTZiJI02UmUkKz07+xlVN5h76G7S2OBaJULKzv83FnruKD37y50h/4zXtvPlrGQ0in1tMzz/pzYyfj3QWRrXiU4Ef7MbRGyoceb2ZhPwcM2dGTsMHCiNM5R38OZkxwe0/SE5LWT3jHoDvHs2YW3FjjtDtvsKB/O2G7bcRtTHsiHOJlrHw== kenji@suzaku okkez
+environment="SVN_ACCOUNT_NAME=ono-max" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD6XhWW0T6dXuX0Ih96lPKx0XJSxoeB9K22YwDeJOGim+r+SvIKGnpWKXlNL6L5rOIH5oC/FgWS+OqPb66lYKf2lRil05Mxt11RECeSq/g5fhQ2hVNmbIOF3RsGXk6IU6LjD4SAA8sLwAg9CdxWNzAG+RHmjTnM35cWrVSN+cANfOZbg8WySkJlSbHGQJSAmjmAoF5AfwTssAlh28NA16kGFamjoY8qnAAHRPjUdzrvB/ZIcPm7vE/8KyszJhIUobobmF0C53yY5I7gtiPruk12np703Cpa+RGmhibVnfKH+gJbc/wFASnVFpTK+USwoKDLwP2coRawoQpgadxMSzN7Fvj4vICX0pPwYLq2uDgEB+ZnEE2COAD9ipJMtqWZ0JeZ8avzgLzR9heSc/F5OvbFHgeogyeM3Y23td8uNIktkQjabGv/BU5r+9a8SCJP7E3qgZXfCqdU+7z10DhrxRKZmlahx4eHvlJ6LpzBfMNpo4IgxqKm0dkMW7YSyCUQKdE= ono-max
environment="SVN_ACCOUNT_NAME=peter.zhu" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDU8CjlqhqFMEETZSzMDjjV38iBmeMfyYrVbYWSQsQQFQf2iPhLaLSu8Z3NUf5YFSIYf/vX/Wj6tPspA9y8MUYzdnJRGXC+yFvCCUYSXu0W2uV8G5TK+cB3FP1aBu1OFhwktRzJEpTk5ntRG8V+jNdJLIcQYRU1zFNcGzJoqzJEK+TmZ9NSdkdP6cqHSWFKZawxefPjBS/iwWaP86RG6EZluD3tmAfzgoQVIyDt+quX4vjatgHusI8R8mVXyFRuSy13O9eFsr32Ef7q45mZPb0MfukYDK8qUL9qhj8dOE8X5fD3MBl8a6v0dSoH8gbgH5r/Morn1aK6rhIIpMhGOmju/f+Y78B5TBkI/7/ugCso/+hMTRBjj6mkw5IbzqEsH8dZYjPEB7efx5XbSdP90FA7q8yPO0GbKt4CLBaUCNzO1ZRwirmiDjP639iLuyoSTJXsVco6XuMHR2ufUv1TNYRQCRjxHsOB7SzJEh4hLXwj8P8MoLIlk2SSpezACd4BqEZZFPIeBS5Pl2KnSRYs6YgoFwdpi4ACiOvDkbhkus4ETJYQOXBEPrdu9CEGVfSormmSVOcbBSw7jVLm3GJqC9Zxt/GTsnB7jSBZj9HPbyRvyHmxy+sCTrSxr5NDvWly2sRbx0eTNmOoAQJ5EoM2/tf+I/2MrzQvaBm4P1C7W36tPQ== peter@peterzhu.ca
environment="SVN_ACCOUNT_NAME=pocke" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVxdpr0Lh4Ec/kmaRwT+Cgbs+8ru7prRHFsYTMcQeLRYDBZ0okaL5ouqOw9rFw88CrCLIJRLhXfgVjoOTi9srQuXFIDy8l8aQlLLwTj82U2RSKkcdeCuPA49IWDUoFXtHCvNkVDfsB97+xWUrhR8ugw8McDlvj6W54RFSFdloJazydUi0c4CdDPCS6cpbSNJPWOhSmkMU99fwy6kN2WR0CMikkTuMmDT5btXZL5uUoixoQCrgWt0gsNW3bgbz1/wC2arZp1rpUlrOG+dF7MvvQGXVo3RCFfzwr3LOoXOdrecI7iAgUhxbiMlLYX3jU8E7y5h3LArdbRz1QvbptqbQX pocke@ruby-lang.org
environment="SVN_ACCOUNT_NAME=rhe" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICLecn7rs5Nk35xn3KJ2F6JT61bgjYH1/ZKhFZWoNrFp rhe
environment="SVN_ACCOUNT_NAME=rhe" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfywbVpog+xdtZZM0Z6cG0tlutSgX9/nDwPIWav+qz0OMo9ZL36cay3drqkfFzcaknK4174slBBYZ1grVcSGT8b9zatAtKSP+AMQ7mcGC+zgSvxh621gENDZ2fdSgUmqIesMc0EHZfG9je6zaI3bkTlO1YLjdFNthQD2RVh4Ysei++5hnkrREB6P8k2/j54I0MVfgGlOZvzW+0Nh0Pp2hUItNSyzhPwvr4Gh+tWjnBF//XHiNfiqK+ZX2CO4U/lhhSmqLYPwOyfQ52nburUjjcFbpQ9f16vkeR+ejqeeQIBuk152s8uIhYy5clOcFr4/C66m5ZKHdkKK7/Wz9YorLL rhe
environment="SVN_ACCOUNT_NAME=samuel" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPp5PNMkLwFHGXhjNTSAC5poU0bJclBm+4vIj9H/0Ovt samuel
environment="SVN_ACCOUNT_NAME=schneems" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIItS5JtElgU0wUCrtGZyZD+ddRRkaKT1iqa4ofoRp+Eh richard.schneeman@gmail.com
+environment="SVN_ACCOUNT_NAME=shioimm" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILJgduSUIo7r6dHniSXeNbvJPOwmkbkT3tH4DmI7nSz4 shioi.mm@gmail.com
environment="SVN_ACCOUNT_NAME=shirosaki" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC64gticgEjTQcCOMNh7DnhiENLz54i14ityIZHB1nSd8pPVj1Ob5d1CB71A608a1GC2OmkgZrKqg5nf0EQJq5WEsOQLafaCpFwCTTycks+0IcQfDmrjTs/vexmwpXgRBhfVoUoEXbCTV+fi2YXR42wI8XSLI7tEKvU3x7hOjQxrNXTVSf2XzkDcwTOrHCCD5P2/J4zN75EXTzh9rJgC7ZpKXK+B7fQyb/g1swrDF6pOG3HysTitQuanT6WgCe4GVIdJquX3NiWmNZOSsc9HYCFdorKxlVBIVHQEExhd2hnDOk8FgXbH55hnWe0CeiSXpO+dC+N5DkhL/MzWjhDpKYL h.shirosaki@gmail.com shirosaki
environment="SVN_ACCOUNT_NAME=shugo" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMFEvsplS/p+ldg4LW/azQNdaVg9WUiNw31EmpedTG+X shugo@lexington shugo
environment="SVN_ACCOUNT_NAME=shyouhei" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIESbNNVHVIWwa4C1OgdF44f7WupoZgNpo1x+p1JkZldB shyouhei@ruby-lang.org @ 2016/02/22 shyouhei
environment="SVN_ACCOUNT_NAME=shyouhei" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvtovqw1WKVmN0pVYKfrZNwhpcUZmzI/ZaQBDZfRnhVc7fQHThJUdR8mSyIGOBnwBTqB88x6crBDwfmdVvPXfMLV/BfOBObv/T1DpUgmo7oO1RIqITpcYvh0cpy4B4bWPAnSC1JH4nOCeHI58+N4CqNZGAghZBZn0rwiX+GzuVy/YrWS8B1nXyaj9t4sIT1PJY9udzQqZe6vvH/SeMCfvMfx2oQXqMawMQ9STPI6d72qJpZY2xPbY1TWsunXED7WxQetMXbIZCoU+Y45/Irrq2NzAFsUaWxP7Od1ggsfmpYRTUHgRmxJH+Ci8yoQO28/A/HSpFuY6qDgWt4HRrhps1w== ci.ruby-lang.org <-> github.com gateway shyouhei
-environment="SVN_ACCOUNT_NAME=sonots" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqPJFB76djfmh1q30MBhoOgNwhwEQdXfcm6Cm6/wH9pLpefFeaLDc+Cg3hVex/tY4bAdeYndAxa2YJs/CVCPjrpgqmqBEskU/3/JyVLgLsPlUZu0ZCCR4iy/snJffQ0IfLcg+eToPGOWxK7y9BSapbUmQ0Thrwj6DxKZV+dxkCgAfsJWKNJkrH981W+SB6mc8k4L+y225285f5vSceheoiF4sF7yFw6t4fAiY44+waNL7qP0Xn1+Dn/noLqQjIj4YvzmXtqHr2XV93bzJnJAP5H3IRI3O8elBiJwiX59w+qIR+xCNY2GZhugUkNR0aA9E+YyYtSAWeGRJVPAKL9KKt sonots
environment="SVN_ACCOUNT_NAME=sorah" ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACG1cKNR8SS4Dkm2wcia74RRmy9d7h62114MQd0H9zb1+1LxVa55Qqd8O232BH1i/fF/1o+eE3L5U7RCR8KUCuAXgFrF429BETaiiBnSErv5yrHJS5RTTjEhA1d9Ygk0o3Und6+90waBXAk2oPVP+OBNtYq1CraZQsXuqvlUtMrBnSTsQ== sorah-mulberry-ecdsa sorah
environment="SVN_ACCOUNT_NAME=soutaro" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGz4u/OYdvmxPAseh6LDPE3Sp+D3NONJYoEHthFoD5ADpYbCvofzi/mbFFn7BP0MnSklRoMWqBAcfmMPswswNo9+S1m98jNfLbvpwmq3elDTGvkf6GSQ49gEGZdXVInsCQmTgp0W7IIj4/Y0NBDRMzMI3BObpPC76g9dbsRZUdSrSaNW++tRAc/vYZl3UeQo12SgkYRedE5ve1jYVVqdPINZ+Qpq87qUqNrho8OON+hAg4IllnFqVC/opM6+iGFT1Z8Q67hkvxTjFk072r1epskNmbK3rdXPxVIM+NySCj8jTYtSzMAAoIOPH6a6c78a7pzn6adoRmy9/TnFP7goIj
environment="SVN_ACCOUNT_NAME=stomar" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDkdyOaVR4r4Rb1ELKEoZMQzxWIKoMEd/nAc0iiP44OJGWiDAQf9RxPaciiwiscP4RfYOOTJc+gZjxluPso/mqibGXd2VBW3+CWGcLEk7uBScZtTb50m//eg+dZHDzzkda7/o1ZelwprG8RSrCs2NAneIyPgMzdElV9V1963KeDzuex0uEL1MG8a+H7IC9rVl80QNl4J37DHQtaqcOQ4nY3qKOTOKBIPosf5ScAVeGmAG1ekL8I9NI8gQYPtxXwPVBgncmd6O6so4CBx0zO8Q+nmE2wwMCRrg06pPKggSPKstwId0LnFW3XoHGaAX69wQxv9b/C5FsRrMtXPnKD6o15zcTFN+Rvnwp3tQwnLEwn2/CzjF07ctxY9wzL+Phs0jAoa/BcR6WoQg4vrh2ZKpgmvkNtLT1wxQGvm4Yoq0K+coPxpmXs5jT5c+Ws9V9raG7H6IeR3DrPMCxd500F+DsbEW3In7zSQ55QuyYpO7vYWBBHyvGQq70yiwCFEjAwfCGlSbrZY4qdPR6/4V3q1Y8BQRIqAWUg/LEyIY4Gw1XXJ27vdfqBI6YIfNeegL+boWh6qaKpWJ12jcc7RakQEM+yIFjDN+VeAsuxhyGC9ZKhp2x4qUir7GlDGKyOpIZNXIiyLNzqau7Oi9qbToYHrY8Tvk/HsBx9pac5r82f5Skl0w== stomar@ruby-lang.org stomar
environment="SVN_ACCOUNT_NAME=tadd" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCdJXwiupBUJihQtx2m2Nmt88t3iWFx6542lT987zRm0XMNVqUG1lxFZs/hZutyagr12juhCoHD6nRoKR2QjfqnQwD4PZIzRWXzRvenZcEkSghJrMu7QQsR/6GsDbWrTmW5TWy72IscehLR3A0fcHxgiT454r5vudN3rXdY5BmS6gUumKaqVAyNiRirev0uOWOr/IClt14LcID+CVbSWuP3Qv+p4FRmPBlGIgD7rdVcI/Vyf5KCUDPQ+5nHyMGcp0rPQ9tbCvng8MSFGwokYU8AwWxux0haH1XMKKZ5Nk2Xh2lEvgPtubOEd/oNCB/mhCFXZw6vr38d11qzMMM1RdbbajHERB2t87UIjvBtJ2SfIsJSFv+BCG09xfXjqiGmtCA7obTIEomM0AEOSaY76UB4WPNHVm9i7TNKZQAouokuOvB4c30hpd1D/VOYkTH1fP3Pv9UlBNNj4EomFz+gvnh0uwLJ3GdZLrcQjdrSsFfgs5/wlB81rjqz1aDLHYNGpTYZw+CqTeG6JMgf+JyiSg49t7JCp9wVXytaFoAIDD8/fUl0VCiOPo701yTeZbIyInjl7s024GFitGrTYRWTRb3AaeZ+G+9IlYQPKKWeIa16paVJHSXi9BoT5rhhIGKx7f9ysR9dHEQR4clGJQJVVXqDisW4GZxiZwqJNJgFw20Q6Q== tadd
environment="SVN_ACCOUNT_NAME=takano32" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDI+cB9tLV++KbpGN7K5dv+3lgWqSinnvvjAYn3QW4Pf takano32@gmail.com
-environment="SVN_ACCOUNT_NAME=tarui" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAlC71NZNkGfGLVWL87fkcjIHFIKzabBlANf/rce0ElXABovvKx0DW0yNKvLEPTM8Y5OWE6R9mjRnXvLmdrWTs8YMVia4sFzkUAsHLU/UlYoZdVk3bIRr1PuoLRpqiCWNIl4Bu1p0m4m4LasHC/4Kz+VswVBtTixOgcyMPQz4+dm5jKVkrEMDWP3XElyAMCWaJ2k4hozJnlpCP/LOS4ActAZHVMjRgCxea9SRMgvSaAMtS9ZcyIXOZl0jj02vKGqEpRUh77NWXygy5uvgZD1Xi2m649TgcMfj+4mTsHf6/AZew6KZAiOV0K6lDvvK1wcDG4RaV8oLfL2tNHzhWc2AYQw== masaya tarui
-environment="SVN_ACCOUNT_NAME=tenderlove" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPZIZcyNtRMe1hLxNA9huQVIZVy1iKIN54lh7+f80WBm aaron@TC.local tenderlove
-environment="SVN_ACCOUNT_NAME=tmm1" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRMxTKV1W0f6BrUWacQkCL/7f2E+QzN/jgcDeHJrznnNeKs9zYLjKUllpwVL8AqTaOCq4rV5g84TlZbnAVfY+8eGWVI5sMXk2TzbNu521+xrD1xFegzKAfOSXQsQx7tyR5aRmTJSfx5nWfsnng/jxFnCiGTuy+a7TxdnfZhdYqL66ltFLpD2grEgOtmcCIx9SF9WX2DZPz7vEabBbgp5+ZFNsl2ST/NcuqABNzdqnw/51CGavetsr/t2nR7mdgqKDWX9Xfh9bM0Pzzs9xSA82GnEW4X9KSGIMLgg2MSbFGRrCisPUSE1ynlv5e6jZ2Zgj0oILYGrxRHwGFbsaSMr9Z ruby@tmm1.net tmm1
+environment="SVN_ACCOUNT_NAME=tenderlove" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG201JUS0HKQm69UXHLWhXADt67ceXYEgYPxU5NoWgpM tenderlove@ruby-lang.org
+environment="SVN_ACCOUNT_NAME=tompng" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOerhB9Jkj3TXkuoMHp/7ztQbh0K38z2TT1PUd9mHusn tomoya.ishida@MacBook-Pro.local
environment="SVN_ACCOUNT_NAME=usa" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxSL9or7AewvAqq1pI6W0SKBN5RQA4t5sam9b1IxavJMzH0K8piCDSaBwW+E5Rr7Q85V4vHRGMoNTYCh34z4aR0DW1JRDfuzvdz2193FKWpWKbQhGdfZpRnb4YYdSf3YfvtEn6Q9l94W9abjp7ymH+Rznl7r5g8z6YxuHUtgrjKtMkBU1xGmtGGslTcC6cOSCCzPGTnpRDmriTzKE4h9THKbUMoUmzLRvzGVrDbMzLXmv6VojsIsTLbN6JsscfKTsjve2kB6k238hlQQAuRabjq1xRrHJW+37fqEGGKA7IQD5MEbW/iF4l3UbgUowk3yAAyDY8d7tjVKwiYVSaL5vzQ== nakamura@unigrate.co.jp usa
environment="SVN_ACCOUNT_NAME=usa" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBzfYV0T0BJwg9BJwXZ+FtrYWB8muU/iiZdY62C6yVC5k1iGpykNnOKA/AucuaH2pqFXtDEK8jmPyIqrlmEDD5tW6J55dvY8Ws7toFqjDMUw4KZD2WMd8YtkpuClwwis3vc0kqwX8M7XklJ2gwRtflW8YuXFBYhBa8Hxl1tRQLYXzu+HTt2F3is338B04GetylkamWJ9UlizBEusMciU/rYe6jtoF6FvEJdinQ4W4+7N/NhJyaLRVfkgRfbjfE6FEZUmjIH60ofFI1Oym84ePrx0AoUHrLJvhsCA95rCnLZu1mB3+mkTFEb2zliKwcq0ND8fEKgDILwdoqqjKBMm1c7 rsa-key-20100727 usa
environment="SVN_ACCOUNT_NAME=watson1978" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQAbRtEjmYWCpEiEq4EtHuVAz4PE2fK6HmDhYo255Qp3vbA02I1Nv4VJCg1IwoPCqpCc1fTjqUSFOjBCYamLmODraeEhyLbs3lx/iBZtjhEFpIjjFno2+FC4ErsFCpkAPJlq19o8BV79NWhMYI1AhANr7pywLYzBYB51O0MrFdBZ2/iNEB7XnM3pcJhrTOTRUCpfoPJ1QmSm12+bAywOaeCUO0zfjpd1xd7DEZe5MLKFWKl0txqmNFJy8YnDfY5PPda5l8DAR1u5CMYCfTXvTOCinjE8YlD/6Nj2inKxHj/AWVpclyMXmg+EA3KQKb0xE0qLTw4A6jaWJuE/o+Wi+9 watson1978
-environment="SVN_ACCOUNT_NAME=wyhaines" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1+GRY7ZSHqU8Q8PfE8zIerGUa66eKSLZ0D8rRbvKxnW5QhpxZ+8nVePtSSwH67WNuKJoBvbUmisl9N0LhGOFJt9R+1vxAp8jpXRKIPkiLkWkMgSU3BgqE0Q8d6vqo+fAhZjiNMPKHW1CAmx4rGgG6UFZsfB77J0r2wzBnJ149D44TOFsGJqLlVKC0AOqP4UnToeNzHThso5/LpKFNcR3Q7ZP5Qj5MmQPoa7PDz6lOKlHabSv1RHurYV79o5BgZKqtxcKHT+x83jgdaDMJYSrQKZb5h1lnOWax03fTqf4vwMOJtd08+GHXGy/Ci/pzOdU6b5ZMWeQSYToNetStBauJQ== wyhaines@kirk-hainess-macbook-pro.local wyhaines
+environment="SVN_ACCOUNT_NAME=ydah" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDOv1OcrE/vYWwD28GTjX5j8cX4V6yxRuOyde0Cbbqsce0Dovi/BzrkWalJpRIFmP5M1BfyFilOrjL9fexjtAKyxbRBWNRnm4FTb1+cmxnGeHKBD9XwIeeaY9X/EF/s2yAC6lOP+f4S72xurbTGCrVvAFJP5+21EZSrvA8p/fbMCGZCbXBYXaRmfw8oj7C7Ruz6fS6IghDM8qibZjgtXvh1bk7Q+pLn2vizQq5L90QOOUOGyQDdWMNeFtjgOTGLm1Y8+Zq9IMeNjBXF2GP4gPk2cTXIS5d+pCJAW68Jx0QUOnxXIovO04KoK3YLhuy/PDYKGjcfwrVxZvp0+1hUeD38qM/ynsqcXxq68mCyXmRpwLG0iMR31s9LjWaYkjooWFXbnOAZzNQ0VGNYDISrBNBaXddkwnMczZAOmWTNMRJetOHP7RzpvG5wflFOUhBj+/mstf/33plOHfjEljHWE/fgGdFgJlhEOMjBSZjpUX8S7WoL49ZfOL5ntU1w5wTbwdM= ydah
environment="SVN_ACCOUNT_NAME=yugui" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1d1FfWAgzOdx4xSVwHmnAUlK2xqj1ck3rCBECW+t1p1QSQ9StKqq0U+ChUdHBnW3fm7KGLIXiwAysm55+5pvfyfvm+YrdyXwE0XPi2PreIAmHdsJj02EkKmcgJa+DcyRXzYsEmk3VBMCRWNkJTJRGRIqaTEZElCILmQ04/KCM4HgRtvgo5k5Ch/U6gC876h85EnFR91syXxBIZTeOcEIYJq89c5iZEWjWpmLqwEjcCWood6gcjX/b6jlx6jO90dydKHdNPRteh5fDWVPEl54/Qjio30iiHlN6DSarG7AQnOGzq6GHN1F1VDkDLMxGj8b1SwtitBL3HpBaLZYsN3v3hSwhmoPRWpjrZvtxurwedFZHQSHIjigZzGl48WUoWHIOUci9i/iHiHbOvcqPvgqA4vuu820G3SdfR7E0OwzKwqW4o7Z4QLZ+8Gk6KFhXjApUJCXIhhtKl1ucvrz6/e0Rar7Mi3qOKep52VSKYWi5z9f/7NAbkRAJffWBxclgchDzbal3hsaamLrPisjFdml3lQKQyfn2JgYzsYYdaD4izjKutPdgtojRLOTWE9B4dk1838v/wTsabST7qWxt4daBAOB9fRjLuJ0CIKJswAD054SiOdkyllU410iRLS6/lM4zkdD42+nKChhgYvQtcCzErbLhRUiCKWme0BxXFZ7kQw== yugui@yugui-macbookpro-3.local yugui
environment="SVN_ACCOUNT_NAME=yui-knk" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3DwgGe2ZC2YBnMLXrncNYrzYkMpQ0CQJvfZj/I92dkXGQ5/7IwyYwMd/XH3fz58IGmYvnsLInnnlBXznCVubV8AH6fw3batpkiAq4AT7yf+Fql/OGn5VOQztxEzOc0LKqDn6WKPzlPvqixj+K3CboXItdURScsMJxwNhBS9WpXKZ9ZMF+BQqb8DddMMRSORNK3JWJBsUgYEJh4CZ00T7IF+xzI/LiQUDdrwzFYyRS1xuPge61LtU/nrNkzGyB4Jpxk4HfJLXsZ/E6B2F8sjDTvCl2AE5fzPzeP/fbnOVBTnGbYg3MZ35gELgIRvjMr6CQtV0derVWUh416M7H6iIv yui-knk
environment="SVN_ACCOUNT_NAME=yuki" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCt1xemzgmUZBWDLFdyPhyJRtZpB5l8SNUiS8YpN0ao8FdZVstAHOxTU0kVce2m8yFtSKdImkso/5odjmbEtkc8GGA4fUtSYzye0yyvG6YFyMyc5WjoaBNUWokeY27VMdgp5oaxd4mVK6NVbVa0Q9VMiMoHUvnJUV8F051sXsmOgGzDjpSEUfnad/6J7josjJw7Dm3tuLd6sOzmWl6vB9pyflzgJ8vbP5UXuURl+ywZ/tYz9pM2s75q/pfpzDVmO2HnT2AMUirHt9lU+baAhRl8ZWYQEYt61veOc1aYUFEw3nGrxBIewwfMXEH427zbDlNkh6nJkWftrrmxg3BX8pcFtx5TxQDm/n1SaQyQRVGU+Vy+8yiJs6gFsu9WPxso5+8Lh6aYdRidu4+ZwhiuJ5Mmx0Isv5vSMaceY89Lo0znSzlkycgd3p7uecpT41rSqkxltuRO+aiaQRJhxRm1u9Pg5BtKMkSciGUOxwltrYVtYJExANXfBFRiSPn3qcbFhPtKCVH57X8WBHkSmxuDN4HqwX3k8NmRJxbvE25LFqXVnDzr1t2CZI8qZXHiATqZFCgax3Qe937RoZNDCpYDiZEJHZhSUKfI/JcYWAW0ZXk+J+uMtizY7oYyotT98ZMvOSQRU/hYVKrmEBpp1eM0BGDhJaH6g9VLzW7RdWeY2cjHYw== yuki
+environment="SVN_ACCOUNT_NAME=zenspider" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINIZa3bSbmVRBeYUuZ5stuV5WdsrYRvVq0/NFNBME9JY ryan@zenspider.com zenspider
environment="SVN_ACCOUNT_NAME=zverok" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7ITHa70oSy3Zl/EyVuzpjM8weDjloRxj/Ld4U3TFe3y9eEgejCvK6sBcaXxC3bkq1LyIQCSv09Mg++/fuYKG+kUc/8lJoSwSUmSUoOVxZ7FIx24pOb2GCnY6hwEQ18bUc56JUSoaZ1N4d/u25nCemJ9Bh+viZjKIcE+a5f9QRir4cAwpb5D19mOEg0buvOmy10QHfkEq7387bqdl63bEQ5UMHh8aFntrgFG83Zy7CJofg2RPEnQt7CpL51N4Bt7emeUZn2s+fSP2BpCZ7YE9ATwkOo971B0Gdv5djYGZDgQESSXUSW0/qNxto20gQ7zfusyFXq3xpKnsG0KxH6twx zverok@meerka
-environment="SVN_ACCOUNT_NAME=zzak" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZXuyimZ/XjSqv6+DC4b+IV69gG7fCV4etLQirgMFgicrYd1/tHcLjIjw05htD5ekmEG2m0O4B4CsYozXoES5BjXNp9DZhxHXqr1mtnsZORrNoUCSRBjbf+bDwENERWVSitgJGr2IbrWTu0p/wF7xI9QC4HURZY6mGLA8uKbvirzJPfSxFs9KW7iebwH4eNnuhKaEr/1xmVMabJYkrxFPEAQXo6J2/y9Cf1kht9c35lbvFgiv2TQN77s6PcNnjVWwC26tlqkk99WfOSozIDhqbAQbOlRHwxZFtjuq5IuTfXvrW5LAqVAjEN/Srq594zUUhoFvrNjHRC4GT8t9ZLYWr zzak
-environment="SVN_ACCOUNT_NAME=zzak" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCobWytkJx0fT/I+zUKJgLArBj6cMIuTrp+/M3eG0OW6t1otHiFh2UcuYLTtsEdXd0lWkiW5Orry5aCX6EdbxZMIxI1iSnBa9oGvkW7A4z5ovtYpJnB8cthGRdK1/OzSoDQKwOfJh+ZAXUNpPlLV45jmTEfW4ASAaQRCjSfbIT+L0MP1QZ3DwHDqUGD6I3i0NTVkZR4NGy+HZshEJ1G34zbPnzjfchabA/pErRmVfJLTnJjo2u0sdGSFiUo+oyJMBxovvcWIoi6VwPilvBOWncqyk1s+u2gO5VCYgwIwILi/+K/+dxI28VDRRC1hxzCVMYQvUP4gejpUoaVhdxDuEVX zzak
-environment="SVN_ACCOUNT_NAME=zzak" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZEy6AHBBku8KpoKjKIhwlc9p3ReTRRyL4O1kstGfi4vxXJQNYhrlor/2ckg/M8jBm7iqfBnRz50yreC/POeCgp0Ziy4K+vfMJmz9pDWjk1j1Kl8qwPertrruTNhebv0pyvPqOTLehNw7gsmSqtxyMuXcvkhFtK9iQJBZqwjTle30Dpi2SQUo6CF+BQHdsh56YD1KVUXmLnesUSW41GA8cTTQ98NA+77NACRZfRkahXyFuGEHQ+UEZ7z6qM8Mj3WRr1wqmTYI9IFOocHBbkDfr5qBxkGuBmL/lgiUaA7VqK0xdqssRJ1Sw2b2XnFKTFgjD4F1PpFe+B3LZ8JXH5Cr5 zzak
+environment="SVN_ACCOUNT_NAME=zzak" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOcOu+yKll8JYcuiTPFenDtshwwgAXz8pueTlahru0QI zzak@hey.com
+environment="SVN_ACCOUNT_NAME=zzak" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA+irWX53zoF1cDEoFhv8sWqBKd7SGbkExRM+OL/AUHj zzakscott@gmail.com
diff --git a/recipes/files/var/www/git.ruby-lang.org/robots.txt b/recipes/files/var/www/git.ruby-lang.org/robots.txt
new file mode 100644
index 00000000..1f53798b
--- /dev/null
+++ b/recipes/files/var/www/git.ruby-lang.org/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/recipes/git-sync-check.rb b/recipes/git-sync-check.rb
index 169895dc..99a1cc18 100644
--- a/recipes/git-sync-check.rb
+++ b/recipes/git-sync-check.rb
@@ -13,3 +13,11 @@
owner 'root'
notifies :run, 'execute[systemctl daemon-reload]'
end
+
+service 'git-sync-check.timer' do
+ action :start
+end
+
+link '/etc/systemd/system/timers.target.wants/git-sync-check.timer' do
+ to '/etc/systemd/system/git-sync-check.timer'
+end
diff --git a/recipes/git-user.rb b/recipes/git-user.rb
new file mode 100644
index 00000000..7822aff6
--- /dev/null
+++ b/recipes/git-user.rb
@@ -0,0 +1,21 @@
+user "git" do
+ shell "/usr/bin/git-shell"
+ home "/var/git"
+end
+
+# We put files used by git here. However, this is NOT git's $HOME.
+directory "/home/git" do
+ owner "git"
+ group "git"
+ mode "0755"
+end
+
+remote_file "/var/git/.ssh/authorized_keys" do
+ mode "600"
+ owner "git"
+end
+
+remote_file "/var/git/.gitconfig" do
+ mode "644"
+ owner "git"
+end
diff --git a/recipes/postfix.rb b/recipes/postfix.rb
new file mode 100644
index 00000000..d21d79c7
--- /dev/null
+++ b/recipes/postfix.rb
@@ -0,0 +1,4 @@
+remote_file '/etc/postfix/main.cf' do
+ mode '644'
+ owner 'root'
+end