Bugassistant (frontend to bugzilla)

The Bugzilla assistant (bugassistant) is a frontend to bugzilla that has a step-by-step style frontend that guides the user into filing a hopefully useful and complete bugreport. It is used via a transparent proxy to bugs.freedesktop.org

Requirements

The bugassistant needs

Installation

Code is maintained in http://github.com/tdf/www-bugassistant along with description information in the wiki at https://wiki.documentfoundation.org/QA/Bugzilla/Components

So just clone the repository, run make to create the files, then copy the files to the appropriate target location:

git clone https://github.com/tdf/www-bugassistant.git
cd www-bugassistant
make
# copy files around..

Cronjob to automate the update

cat > /etc/cron.d/9999bugassistant  << EOF
#  Bugassistant update script
#
# m h dom mon dow user  command
#
# update the unconfirmed bugs count
0 0 * * * wsadmin perl $HOME/www-bugassistant/stats/unconfirmedBugsCount.pl > $HOME/www-bugassistant/bug/qateam/unconfirmedBugsCount.html
5 0 * * * wsadmin perl $HOME/www-bugassistant/stats/generalStats.pl         > $HOME/www-bugassistant/bug/qateam/generalStats.html

# refresh all of the bugassistant and sync all changes to webroot
15 0 * * * wsadmin cd $HOME/www-bugassistant && git pull | grep -v "Already up-to-date" || make > /tmp/bugassistant-cron.log && ( rsync -a bug/* /var/www/sites/libreoffice.org/bugassistant/libreoffice/bug/ ; rsync -a bug/* /var/www/sites/newdesign.libreoffice.org/bugassistant/libreoffice/bug/ )
EOF

Reverse Proxy to bugs.freedesktop.org

<VirtualHost *:443>
    ServerName          bugassistant.libreoffice.org
    DocumentRoot        /var/www/sites/bugassistant.libreoffice.org

    ProxyPass           /libreoffice !
    ProxyPass           / https://bugs.libreoffice.org/ retry=1
    ProxyPreserveHost   On
    SSLProxyEngine      On

    SSLEngine on

    SSLCertificateFile /etc/ssl/certs/libreoffice.org.crt
    SSLCertificateKeyFile /etc/ssl/private/libreoffice.org.key
    SSLCertificateChainFile /etc/ssl/certs/libreoffice.org.chain

    CustomLog /var/log/apache2/bugassistant.libreoffice.org.log vhost_combined

</VirtualHost>

Redirect/Aliases for actual bugassistant

<VirtualHost *:443>
  ...
   Alias /bugassistant/ /var/www/sites/bugassistant.libreoffice.org/
   SSLProxyEngine      On
   #
   # This location will be used by https://bugassistant.libreoffice.org/bug/bug.html
   # when included in an iframe in https://libreoffice.org/get-help/bug/ to obey the
   # same origin policy and be allowed to explore the DOM of an iframe containing
   # a bug submission form result.
   #
   ProxyPass           /bugzilla/ https://bugs.libreoffice.org/ retry=1
   ProxyPreserveHost   On
   #
   # Bugzilla will redirect
   #   https://libreoffice.org/bugzilla/bug_list.cgi
   # to
   #   https://libreoffice.org/bug_list.cgi
   # when the user is logged in. To preserve the /bugzilla/ directory
   # the Location: header must be reworked, which is the purpose of
   # the ProxyPassReverse that follow.
   # Note that bugzilla does *not* return a Location that is
   #   https://bugs.libreoffice.org/bug_list.cgi
   # because it creates the Location: header using the hostname from
   # which the request was originally made, i.e. libreoffice.org or
   # www.libreoffice.org. However, bugzilla has no way to know that the
   # original path of the request was prefixed with /bugzilla/ and it is
   # the responsibility of the reverse proxy to rewrite the location
   # accordingly.
   #
   ProxyPassReverse   /bugzilla/ https://libreoffice.org/
   ProxyPassReverse   /bugzilla/ https://www.libreoffice.org/
   ...
 <VirtualHost *:80>
   ...
   #
   # Bug reporting is forced to https because bugzilla always uses https
   # Any attempt to access it from http would violate the same origin policy.
   #
   RewriteRule ^/get-help/bug/$ https://libreoffice.org/get-help/bug/ [R=301,L,NC]
   ...