[MediaWiki-commits] [Gerrit] Rewrite rules for git.wikimedia.org - change (operations/puppet)
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)
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)
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)
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] + + #