User Tools

Site Tools


bugzilla
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


bugzilla [2014/11/24 01:14] (current) – created 0.0.0.0
Line 1: Line 1:
 +====== Bugzilla ======
  
 +===== Pretty URLs =====
 +Using Apache's mod_rewrite, it is possible to give Bugzilla pretty URLs for certain pages.
 +  * <code>/assigned-to/me@example.com/</code> lists all bugs that are assigned to the specified email address
 +  * <code>/reported-by/me@example.com/</code> lists all bugs that were reported by the specified email address
 +  * <code>/new-bug/</code> redirects to the page listing all products to create a new bug report about
 +  * <code>/new-bug/Product Name/</code> shows the form to create a new bug for the specified product
 +  * <code>/graph/</code> shows our Open Bugs vs. Resolved Bugs graph
 +  * <code>/open/</code> lists all open (new/assigned/etc.) bugs
 +  * <code>/unassigned/</code> lists all unassiged (i.e. just the 'new' status) bugs
 +  * <code>/fixed/</code> lists all fixed (resolved-fixed) bugs
 +  * <code>/123/</code> shows bug #123
 +
 +==== .htaccess ====
 +The .htaccess (mod_rewrite) code needed to accomplish this is:
 +{{File|.htaccess|<syntax lang="apache">
 +<IfModule mod_rewrite.c>
 +    RewriteEngine on
 +
 +    #Need this because we're symlinked
 +    RewriteBase /bugs/
 +
 +    #And enter_bug.cgi?product=Foo -> /new-bug/Foo/
 +    RewriteCond %{QUERY_STRING} ^product=([[A-Za-z0-9%\+\-_]]+)$
 +    RewriteRule enter_bug\.cgi new-bug/%1/? [[L,R=301,NE]]
 +
 +    #Move /new-bug/ to enter_bug.cgi (i.e. new-bug without a product specified)
 +    RewriteRule new-bug/?$ enter_bug.cgi [[L,R=301,NE]]
 +
 +    #Alternative rules for POSTed forms
 +    RewriteCond %{REQUEST_URI} (post_bug|process_bug)\.cgi
 +    RewriteRule .+/(.+) $1 [[L,NE]]
 +
 +    #Move show_bug.cgi?id=123 -> /123/
 +    RewriteCond %{QUERY_STRING} ^id=([[0-9]]+)$
 +    RewriteRule show_bug\.cgi %1/? [[L,R=301,NE]]
 +
 +    #This fixes CSS/etc. and also permanently redirects link destinations (e.g. /assigned-to/foo@example.com/report.cgi to /report.cgi)
 +    RewriteRule (assigned-to|reported-by)/.+@[[a-zA-Z0-9\-\.]]+/(.+) $2 [[L,R=301,NE]]
 +    RewriteRule (new-bug)/[[^/]]+/(.+) $2 [[L,R=301,NE]]
 +    RewriteRule (open|unassigned|fixed|graph|[[0-9]]+)/(.+) $2 [[L,R=301,NE]]
 +
 +    #Append a trailing slash if necessary
 +    RewriteRule (assigned-to|reported-by)/(.+@[[a-zA-Z0-9\-\.]]+)$ $1/$2/ [[L,R=301,NE]]
 +    RewriteRule (new-bug)/([[^/]]+)$ $1/$2/ [[L,R=301,NE]]
 +    RewriteRule (open|unassigned|fixed|graph|[[0-9]]+)$ $1/ [[L,R=301,NE]]
 +
 +    #Make the actual assigned-to etc. URLs work
 +    RewriteRule assigned-to/(.+@[[a-zA-Z0-9\-\.]]+)/$ buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Product+One&product=Product+Two&product=Product+Three&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=exact&email1=$1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Importance&field0-0-0=noop&type0-0-0=noop&value0-0-0= [[NE]]
 +    RewriteRule reported-by/(.+@[[a-zA-Z0-9\-\.]]+)/$ buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Product+One&product=Product+Two&product=Product+Three&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED&resolution=---&emailreporter1=1&emailtype1=exact&email1=$1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= [[NE]]
 +
 +    RewriteRule new-bug/(.+)/$ enter_bug.cgi?assigned_to=&blocked=&bug_file_loc=http\%3A\%2F\%2F&bug_severity=normal&bug_status=NEW&comment=&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text\%2Fplain&data=&deadline=&dependson=&description=&estimated_time=0.0&form_name=enter_bug&maketemplate=Remember+values+as+bookmarkable+template&op_sys=All&priority=P3&product=$1&rep_platform=All&short_desc=&version= [[NE]]
 +
 +    RewriteRule graph/$ chart.cgi?category=Sihnon&datefrom=&dateto=&label0=CURRENTLY_OPEN&label1=RESOLVED&line0=27&line1=5&name=24&subcategory=Hosts&action=wrap&width=1000&height=650 [[NE]]
 +    RewriteRule open/$ buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Product+One&product=Product+Two&product=Product+Three&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&resolution=WORKSFORME&resolution=---&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= [[NE]]
 +    RewriteRule unassigned/$ buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Product+One&product=Product+Two&product=Product+Three&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=UNCONFIRMED&bug_status=NEW&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= [[NE]]
 +    RewriteRule fixed/$ buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Product+One&product=Product+Two&product=Product+Three&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= [[NE]]
 +
 +    #The &dummy is needed to prevent the "show_bug.cgi?id=123 -> /123/" rule writing it BACK to /123/
 +    RewriteRule ^([[0-9]]+)/?$ show_bug.cgi?id=$1&dummy [[L]]
 +</IfModule>
 +</syntax>}}
 +
 +
 +Note that in certain places the products need to be listed.  These should be entered in the form "<code>product=Product+One&product=Product+Two&product=Product+Three</code>" Additionally, the <code>/graph/</code> rule will need editing to match your own graph configuration.  And finally, you only need the "<code>RewriteBase</code>" line if the URLs that you use to access Bugzilla don't match up with the filesystem - e.g. if you use a symlink to point Apache at the Bugzilla files.
bugzilla.txt · Last modified: by 0.0.0.0

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki