[MediaWiki-commits] [Gerrit] Rewrite rules for git.wikimedia.org - change (operations/puppet)

2016-06-29 Thread Dzahn (Code Review)
Dzahn has submitted this change and it was merged.

Change subject: Rewrite rules for git.wikimedia.org
..


Rewrite rules for git.wikimedia.org

Redirect gitblit urls to phabricator (diffusion) equivalents.

Bug: T137224
Change-Id: I73873258a5f3acc21d0db4689dee2f18ca38aff6
---
M modules/phabricator/manifests/init.pp
A modules/phabricator/templates/gitblit_vhost.conf.erb
M modules/phabricator/templates/phabricator-default.conf.erb
M modules/role/manifests/phabricator/main.pp
4 files changed, 127 insertions(+), 10 deletions(-)

Approvals:
  jenkins-bot: Verified
  Dzahn: Looks good to me, approved



diff --git a/modules/phabricator/manifests/init.pp 
b/modules/phabricator/manifests/init.pp
index 6eafb2d..146cbbe 100644
--- a/modules/phabricator/manifests/init.pp
+++ b/modules/phabricator/manifests/init.pp
@@ -27,8 +27,8 @@
 # Requires: mysql_admin_user
 #
 #
-# [*serveralias*]
-# Alternative domain on which to respond too
+# [*serveraliases*]
+# Alternative domains on which to respond too
 #
 # [*deploy_user*]
 # The username that is used for scap deployments
@@ -57,7 +57,7 @@
 $mysql_admin_user = '',
 $mysql_admin_pass = '',
 $serveradmin  = '',
-$serveralias  = '',
+$serveraliases= [],
 $deploy_user  = 'phab-deploy',
 $deploy_target= 'phabricator/deployment',
 ) {
@@ -117,8 +117,24 @@
 require => $base_requirements,
 }
 
+# git.wikimedia.org hosts rewrite rules to redirect old gitblit urls to
+# equivilent diffusion urls.
+
+$gitblit_servername = $phab_settings['gitblit.hostname']
+
+file { '/srv/git.wikimedia.org':
+ensure => 'directory',
+owner  => 'root',
+group  => 'root',
+}
+
+apache::site { 'git.wikimedia.org':
+content => template('phabricator/gitblit_vhost.conf.erb'),
+require => File['/srv/git.wikimedia.org'],
+}
+
 # Robots.txt disallowing to crawl the alias domain
-if $serveralias {
+if $serveraliases {
 file {"${phabdir}/robots.txt":
 ensure  => present,
 owner   => 'root',
diff --git a/modules/phabricator/templates/gitblit_vhost.conf.erb 
b/modules/phabricator/templates/gitblit_vhost.conf.erb
new file mode 100644
index 000..c317a1f
--- /dev/null
+++ b/modules/phabricator/templates/gitblit_vhost.conf.erb
@@ -0,0 +1,95 @@
+
+  ServerName <%= @gitblit_servername %>
+<% if !@serveradmin.empty? -%>
+  ServerAdmin <%= @serveradmin %>
+<%- end %>
+  DocumentRoot /srv/git.wikimedia.org
+
+  # https://git.wikimedia.org -> 
https://phabricator.wikimedia.org/diffusion redirects
+  # @author [[meta:User:Danny B.]]
+  # Maniphest Task: https://phabricator.wikimedia.org/T137224
+
+  ### Directives
+
+  # logging
+  LogLevel warn
+  ErrorLog /var/log/apache2/git.wikimedia.org_error.log
+  CustomLog /var/log/apache2/git.wikimedia.org_access.log wmf
+  ServerSignature Off
+
+  # don't decode "%2F" in URL to "/"
+  AllowEncodedSlashes NoDecode
+
+  # allow URL rewriting
+  RewriteEngine On
+
+  ### Static links
+
+  # home page
+  RewriteRule ^/$ https://phabricator.wikimedia.org/diffusion [L,R=301]
+
+  # searches & lists
+  RewriteRule ^/activity/?$ 
https://phabricator.wikimedia.org/diffusion/query/active/ [L,R=301]
+  RewriteRule ^/lucene/?$ 
https://phabricator.wikimedia.org/diffusion/query/advanced/ [L,R=301]
+  RewriteRule ^/(projects|repositories)/?$ 
https://phabricator.wikimedia.org/diffusion/query/all/ [L,R=301]
+
+
+  ### Preformat
+
+  # ?r= -> /
+  RewriteCond %{QUERY_STRING} ^(.*&)?r=([0-9A-Za-z/_\.-]+).git(&.*)?$
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/$ 
/$1/%2.git [NE]
+
+  # remove "refs%2Fheads%2F" and "refs%2Fremotes%2Forigin%2F"
+  RewriteRule ^(.*)refs\%2[Ff](heads|remotes\%2[Ff]origin)\%2[Ff](.*)$ $1$3
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\%2[Ff](.*)\.git(.*)$
 /$1/$2/$3.git$4 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([0-9A-Za-z_\.-]+)\%2[Ff]([^/]+)(.*)$
 /$1/$2.git/$3\%25252F$4$5 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([^/]+)/([0-9A-Za-z/_\.-]+)\%2[Ff]([^/]*)$
 /$1/$2.git/$3/$4/$5 [N]
+
+
+  ### /commit/
+  ### /commitdiff/
+  ### /patch/
+
+  # 
https://git.wikimedia.org//.git/
+  # -> 
https://git.wikimedia.org//.git/
+  # ---> 
https://phabricator.wikimedia.org/r/<(commit|patch)>/;
+  RewriteRule 

[MediaWiki-commits] [Gerrit] Rewrite rules for git.wikimedia.org - change (operations/puppet)

2016-06-26 Thread Paladox (Code Review)
Paladox has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/296138

Change subject: Rewrite rules for git.wikimedia.org
..

Rewrite rules for git.wikimedia.org

Change-Id: I73873258a5f3acc21d0db4689dee2f18ca38aff6
---
M modules/phabricator/manifests/init.pp
A modules/phabricator/templates/gitblit_vhost.conf.erb
M modules/role/manifests/phabricator/main.pp
3 files changed, 112 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/38/296138/1

diff --git a/modules/phabricator/manifests/init.pp 
b/modules/phabricator/manifests/init.pp
index 6eafb2d..787384a 100644
--- a/modules/phabricator/manifests/init.pp
+++ b/modules/phabricator/manifests/init.pp
@@ -117,6 +117,22 @@
 require => $base_requirements,
 }
 
+# git.wikimedia.org hosts rewrite rules to redirect old gitblit urls to
+# equivilent diffusion urls.
+
+$gitblit_servername = $phab_settings['gitblit.hostname']
+
+file { '/srv/git.wikimedia.org':
+ensure => 'directory',
+owner  => 'root',
+group  => 'root',
+}
+
+apache::site { 'git.wikimedia.org':
+content => template('phabricator/gitblit_vhost.conf.erb'),
+require => File['/srv/git.wikimedia.org'],
+}
+
 # Robots.txt disallowing to crawl the alias domain
 if $serveralias {
 file {"${phabdir}/robots.txt":
diff --git a/modules/phabricator/templates/gitblit_vhost.conf.erb 
b/modules/phabricator/templates/gitblit_vhost.conf.erb
new file mode 100644
index 000..c317a1f
--- /dev/null
+++ b/modules/phabricator/templates/gitblit_vhost.conf.erb
@@ -0,0 +1,95 @@
+
+  ServerName <%= @gitblit_servername %>
+<% if !@serveradmin.empty? -%>
+  ServerAdmin <%= @serveradmin %>
+<%- end %>
+  DocumentRoot /srv/git.wikimedia.org
+
+  # https://git.wikimedia.org -> 
https://phabricator.wikimedia.org/diffusion redirects
+  # @author [[meta:User:Danny B.]]
+  # Maniphest Task: https://phabricator.wikimedia.org/T137224
+
+  ### Directives
+
+  # logging
+  LogLevel warn
+  ErrorLog /var/log/apache2/git.wikimedia.org_error.log
+  CustomLog /var/log/apache2/git.wikimedia.org_access.log wmf
+  ServerSignature Off
+
+  # don't decode "%2F" in URL to "/"
+  AllowEncodedSlashes NoDecode
+
+  # allow URL rewriting
+  RewriteEngine On
+
+  ### Static links
+
+  # home page
+  RewriteRule ^/$ https://phabricator.wikimedia.org/diffusion [L,R=301]
+
+  # searches & lists
+  RewriteRule ^/activity/?$ 
https://phabricator.wikimedia.org/diffusion/query/active/ [L,R=301]
+  RewriteRule ^/lucene/?$ 
https://phabricator.wikimedia.org/diffusion/query/advanced/ [L,R=301]
+  RewriteRule ^/(projects|repositories)/?$ 
https://phabricator.wikimedia.org/diffusion/query/all/ [L,R=301]
+
+
+  ### Preformat
+
+  # ?r= -> /
+  RewriteCond %{QUERY_STRING} ^(.*&)?r=([0-9A-Za-z/_\.-]+).git(&.*)?$
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/$ 
/$1/%2.git [NE]
+
+  # remove "refs%2Fheads%2F" and "refs%2Fremotes%2Forigin%2F"
+  RewriteRule ^(.*)refs\%2[Ff](heads|remotes\%2[Ff]origin)\%2[Ff](.*)$ $1$3
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\%2[Ff](.*)\.git(.*)$
 /$1/$2/$3.git$4 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([0-9A-Za-z_\.-]+)\%2[Ff]([^/]+)(.*)$
 /$1/$2.git/$3\%25252F$4$5 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([^/]+)/([0-9A-Za-z/_\.-]+)\%2[Ff]([^/]*)$
 /$1/$2.git/$3/$4/$5 [N]
+
+
+  ### /commit/
+  ### /commitdiff/
+  ### /patch/
+
+  # 
https://git.wikimedia.org//.git/
+  # -> 
https://git.wikimedia.org//.git/
+  # ---> 
https://phabricator.wikimedia.org/r/<(commit|patch)>/;
+  RewriteRule 
^/(commit|patch)(diff)?/([0-9A-Za-z/_\.-]+)\.git/([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f])$
 https://phabricator.wikimedia.org/r/$1/$3;$4 [NE,L,R=301]
+
+
+  ### /blame/
+  ### /blob/
+  ### /docs/
+  ### /history/
+  ### /log/
+  ### /summary/
+  ### /tree/
+
+  # translate Gitblit actions to Diffusion actions
+  RewriteRule ^/(blame|blob|docs|tree)/(.*)$ /browse/$2 [NE]
+  RewriteRule ^/log/(.*)$ /history/$1 [NE]
+  RewriteRule ^/summary/(.*)$ /$1 [NE]
+
+  # 
https://git.wikimedia.org/<(blame|blob|history|log|tree)>/.git/<(/)?>
+  # -> 
https://git.wikimedia.org/<(blame|blob|history|log|tree)>/.git/<(/)?>

[MediaWiki-commits] [Gerrit] Rewrite rules for git.wikimedia.org - change (operations/puppet)

2016-06-26 Thread Dzahn (Code Review)
Dzahn has submitted this change and it was merged.

Change subject: Rewrite rules for git.wikimedia.org
..


Rewrite rules for git.wikimedia.org

Redirect gitblit urls to phabricator (diffusion) equivalents.

Bug: T137224
Change-Id: I67ad308f9e6373e5234cb2d83006457d6f467bf8
---
M modules/phabricator/manifests/init.pp
A modules/phabricator/templates/gitblit_vhost.conf.erb
M modules/role/manifests/phabricator/main.pp
3 files changed, 112 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Dzahn: Looks good to me, approved



diff --git a/modules/phabricator/manifests/init.pp 
b/modules/phabricator/manifests/init.pp
index 6eafb2d..787384a 100644
--- a/modules/phabricator/manifests/init.pp
+++ b/modules/phabricator/manifests/init.pp
@@ -117,6 +117,22 @@
 require => $base_requirements,
 }
 
+# git.wikimedia.org hosts rewrite rules to redirect old gitblit urls to
+# equivilent diffusion urls.
+
+$gitblit_servername = $phab_settings['gitblit.hostname']
+
+file { '/srv/git.wikimedia.org':
+ensure => 'directory',
+owner  => 'root',
+group  => 'root',
+}
+
+apache::site { 'git.wikimedia.org':
+content => template('phabricator/gitblit_vhost.conf.erb'),
+require => File['/srv/git.wikimedia.org'],
+}
+
 # Robots.txt disallowing to crawl the alias domain
 if $serveralias {
 file {"${phabdir}/robots.txt":
diff --git a/modules/phabricator/templates/gitblit_vhost.conf.erb 
b/modules/phabricator/templates/gitblit_vhost.conf.erb
new file mode 100644
index 000..c317a1f
--- /dev/null
+++ b/modules/phabricator/templates/gitblit_vhost.conf.erb
@@ -0,0 +1,95 @@
+
+  ServerName <%= @gitblit_servername %>
+<% if !@serveradmin.empty? -%>
+  ServerAdmin <%= @serveradmin %>
+<%- end %>
+  DocumentRoot /srv/git.wikimedia.org
+
+  # https://git.wikimedia.org -> 
https://phabricator.wikimedia.org/diffusion redirects
+  # @author [[meta:User:Danny B.]]
+  # Maniphest Task: https://phabricator.wikimedia.org/T137224
+
+  ### Directives
+
+  # logging
+  LogLevel warn
+  ErrorLog /var/log/apache2/git.wikimedia.org_error.log
+  CustomLog /var/log/apache2/git.wikimedia.org_access.log wmf
+  ServerSignature Off
+
+  # don't decode "%2F" in URL to "/"
+  AllowEncodedSlashes NoDecode
+
+  # allow URL rewriting
+  RewriteEngine On
+
+  ### Static links
+
+  # home page
+  RewriteRule ^/$ https://phabricator.wikimedia.org/diffusion [L,R=301]
+
+  # searches & lists
+  RewriteRule ^/activity/?$ 
https://phabricator.wikimedia.org/diffusion/query/active/ [L,R=301]
+  RewriteRule ^/lucene/?$ 
https://phabricator.wikimedia.org/diffusion/query/advanced/ [L,R=301]
+  RewriteRule ^/(projects|repositories)/?$ 
https://phabricator.wikimedia.org/diffusion/query/all/ [L,R=301]
+
+
+  ### Preformat
+
+  # ?r= -> /
+  RewriteCond %{QUERY_STRING} ^(.*&)?r=([0-9A-Za-z/_\.-]+).git(&.*)?$
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/$ 
/$1/%2.git [NE]
+
+  # remove "refs%2Fheads%2F" and "refs%2Fremotes%2Forigin%2F"
+  RewriteRule ^(.*)refs\%2[Ff](heads|remotes\%2[Ff]origin)\%2[Ff](.*)$ $1$3
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\%2[Ff](.*)\.git(.*)$
 /$1/$2/$3.git$4 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([0-9A-Za-z_\.-]+)\%2[Ff]([^/]+)(.*)$
 /$1/$2.git/$3\%25252F$4$5 [N]
+
+  #  -> 
+  RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([^/]+)/([0-9A-Za-z/_\.-]+)\%2[Ff]([^/]*)$
 /$1/$2.git/$3/$4/$5 [N]
+
+
+  ### /commit/
+  ### /commitdiff/
+  ### /patch/
+
+  # 
https://git.wikimedia.org//.git/
+  # -> 
https://git.wikimedia.org//.git/
+  # ---> 
https://phabricator.wikimedia.org/r/<(commit|patch)>/;
+  RewriteRule 
^/(commit|patch)(diff)?/([0-9A-Za-z/_\.-]+)\.git/([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f])$
 https://phabricator.wikimedia.org/r/$1/$3;$4 [NE,L,R=301]
+
+
+  ### /blame/
+  ### /blob/
+  ### /docs/
+  ### /history/
+  ### /log/
+  ### /summary/
+  ### /tree/
+
+  # translate Gitblit actions to Diffusion actions
+  RewriteRule ^/(blame|blob|docs|tree)/(.*)$ /browse/$2 [NE]
+  RewriteRule ^/log/(.*)$ /history/$1 [NE]
+  RewriteRule ^/summary/(.*)$ /$1 [NE]
+
+  # 
https://git.wikimedia.org/<(blame|blob|history|log|tree)>/.git/<(/)?>
+  # -> 

[MediaWiki-commits] [Gerrit] Rewrite rules for git.wikimedia.org - change (operations/puppet)

2016-06-16 Thread 20after4 (Code Review)
20after4 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/294867

Change subject: Rewrite rules for git.wikimedia.org
..

Rewrite rules for git.wikimedia.org

Redirect gitblit urls to phabricator (diffusion) equivalents.

Bug: T137224

Change-Id: I67ad308f9e6373e5234cb2d83006457d6f467bf8
---
M modules/phabricator/manifests/init.pp
A modules/phabricator/templates/gitblit_vhost.conf.erb
2 files changed, 106 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/67/294867/1

diff --git a/modules/phabricator/manifests/init.pp 
b/modules/phabricator/manifests/init.pp
index ae712f6..a5df0ba 100644
--- a/modules/phabricator/manifests/init.pp
+++ b/modules/phabricator/manifests/init.pp
@@ -120,6 +120,20 @@
 require => $base_requirements,
 }
 
+# git.wikimedia.org hosts rewrite rules to redirect old gitblit urls to
+# equivilent diffusion urls.
+
+file { '/srv/git.wikimedia.org':
+ensure => 'directory',
+owner  => 'root',
+group  => 'root',
+}
+
+apache::site { 'git.wikimedia.org':
+content => template('phabricator/gitblit_vhost.conf.erb'),
+require => File['/srv/git.wikimedia.org'],
+}
+
 # Robots.txt disallowing to crawl the alias domain
 if $serveralias {
 file {"${phabdir}/robots.txt":
diff --git a/modules/phabricator/templates/gitblit_vhost.conf.erb 
b/modules/phabricator/templates/gitblit_vhost.conf.erb
new file mode 100644
index 000..4b5cc25
--- /dev/null
+++ b/modules/phabricator/templates/gitblit_vhost.conf.erb
@@ -0,0 +1,92 @@
+
+   ServerName git.wikimedia.org
+   DocumentRoot /srv/git.wikimedia.org
+
+   # https://git.wikimedia.org -> 
https://phabricator.wikimedia.org/diffusion redirects
+   # @author [[meta:User:Danny B.]]
+# Maniphest Task: https://phabricator.wikimedia.org/T137224
+
+   ### Directives
+
+   # logging
+   LogLevel warn
+   ErrorLog /var/log/apache2/git.wikimedia.org_error.log
+   CustomLog /var/log/apache2/git.wikimedia.org_access.log wmf
+   ServerSignature Off
+
+   # don't decode "%2F" in URL to "/"
+   AllowEncodedSlashes NoDecode
+
+   # allow URL rewriting
+   RewriteEngine On
+
+   ### Static links
+
+   # home page
+   RewriteRule ^/$ https://phabricator.wikimedia.org/diffusion [L,R=301]
+
+   # searches & lists
+   RewriteRule ^/activity/?$ 
https://phabricator.wikimedia.org/diffusion/query/active/ [L,R=301]
+   RewriteRule ^/lucene/?$ 
https://phabricator.wikimedia.org/diffusion/query/advanced/ [L,R=301]
+   RewriteRule ^/(projects|repositories)/?$ 
https://phabricator.wikimedia.org/diffusion/query/all/ [L,R=301]
+
+
+   ### Preformat
+
+   # ?r= -> /
+   RewriteCond %{QUERY_STRING} ^(.*&)?r=([0-9A-Za-z/_\.-]+).git(&.*)?$
+   RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/$ 
/$1/%2.git [NE]
+
+   # remove "refs%2Fheads%2F" and "refs%2Fremotes%2Forigin%2F"
+   RewriteRule ^(.*)refs\%2[Ff](heads|remotes\%2[Ff]origin)\%2[Ff](.*)$ 
$1$3
+
+   #  -> 
+   RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\%2[Ff](.*)\.git(.*)$
 /$1/$2/$3.git$4 [N]
+
+   #  -> 
+   RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([0-9A-Za-z_\.-]+)\%2[Ff]([^/]+)(.*)$
 /$1/$2.git/$3\%25252F$4$5 [N]
+
+   #  -> 
+   RewriteRule 
^/(blame|blob|commit|commitdiff|docs|history|log|patch|summary|tree)/([0-9A-Za-z/_\.-]+)\.git/([^/]+)/([0-9A-Za-z/_\.-]+)\%2[Ff]([^/]*)$
 /$1/$2.git/$3/$4/$5 [N]
+
+
+   ### /commit/
+   ### /commitdiff/
+   ### /patch/
+
+   # 
https://git.wikimedia.org//.git/
+   # -> 
https://git.wikimedia.org//.git/
+   # ---> 
https://phabricator.wikimedia.org/r/<(commit|patch)>/;
+   RewriteRule 
^/(commit|patch)(diff)?/([0-9A-Za-z/_\.-]+)\.git/([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f])$
 https://phabricator.wikimedia.org/r/$1/$3;$4 [NE,L,R=301]
+
+
+   ### /blame/
+   ### /blob/
+   ### /docs/
+   ### /history/
+   ### /log/
+   ### /summary/
+   ### /tree/
+
+   # translate Gitblit actions to Diffusion actions
+   RewriteRule ^/(blame|blob|docs|tree)/(.*)$ /browse/$2 [NE]
+   RewriteRule ^/log/(.*)$ /history/$1 [NE]
+   RewriteRule ^/summary/(.*)$ /$1 [NE]
+
+   #