2011-03-02 Ojan Vafai <ojan@chromium.org>
authorojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Mar 2011 08:02:02 +0000 (08:02 +0000)
committerojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Mar 2011 08:02:02 +0000 (08:02 +0000)
        Reviewed by Adam Barth.

        make webkit-patch upload work for security bugs
        https://bugs.webkit.org/show_bug.cgi?id=55655

        The problem is that we shell out to prepare-ChangeLog,
        which does not authenticate with bugzilla. All it needs from
        bugzilla is the bug title though. We just pass it through from
        webkit-patch instead.

        * Scripts/prepare-ChangeLog:
        * Scripts/webkitpy/common/net/bugzilla/bug.py:
        * Scripts/webkitpy/tool/steps/preparechangelog.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@80211 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/prepare-ChangeLog
Tools/Scripts/webkitpy/common/net/bugzilla/bug.py
Tools/Scripts/webkitpy/tool/steps/preparechangelog.py

index 97d9890a442b80c80938bbba4362f940dcba7432..1f3fa8cbae8037b7cb8984b6a8b3ff279c8adbe9 100644 (file)
@@ -1,3 +1,19 @@
+2011-03-02  Ojan Vafai  <ojan@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        make webkit-patch upload work for security bugs
+        https://bugs.webkit.org/show_bug.cgi?id=55655
+
+        The problem is that we shell out to prepare-ChangeLog,
+        which does not authenticate with bugzilla. All it needs from
+        bugzilla is the bug title though. We just pass it through from
+        webkit-patch instead.
+
+        * Scripts/prepare-ChangeLog:
+        * Scripts/webkitpy/common/net/bugzilla/bug.py:
+        * Scripts/webkitpy/tool/steps/preparechangelog.py:
+
 2011-03-01  Ojan Vafai  <ojan@chromium.org>
 
         Reviewed by Tony Chang.
index b5e2efea54a34d6f53ec1a5b17621e0c26e40787..a4b3d6bb75f0ed0def7902daaaccc4b18ece15a4 100755 (executable)
@@ -99,6 +99,7 @@ sub decodeEntities($);
 # Project time zone for Cupertino, CA, US
 my $changeLogTimeZone = "PST8PDT";
 
+my $bugDescription;
 my $bugNumber;
 my $name;
 my $emailAddress;
@@ -114,6 +115,7 @@ my $updateChangeLogs = 1;
 my $parseOptionsResult =
     GetOptions("diff|d!" => \$spewDiff,
                "bug|b:i" => \$bugNumber,
+               "description:s" => \$bugDescription,
                "name:s" => \$name,
                "email:s" => \$emailAddress,
                "merge-base:s" => \$mergeBase,
@@ -127,6 +129,7 @@ my $parseOptionsResult =
 if (!$parseOptionsResult || $showHelp) {
     print STDERR basename($0) . " [-b|--bug=<bugid>] [-d|--diff] [-h|--help] [-o|--open] [-g|--git-commit=<committish>] [--git-reviewer=<name>] [svndir1 [svndir2 ...]]\n";
     print STDERR "  -b|--bug        Fill in the ChangeLog bug information from the given bug.\n";
+    print STDERR "  --description   One-line description that matches the bug title.\n";
     print STDERR "  -d|--diff       Spew diff to stdout when running\n";
     print STDERR "  --merge-base    Populate the ChangeLogs with the diff to this branch\n";
     print STDERR "  -g|--git-commit Populate the ChangeLogs from the specified git commit\n";
@@ -254,10 +257,12 @@ $emailAddress = changeLogEmailAddressFromArgs($emailAddress);
 
 print STDERR "  Change author: $name <$emailAddress>.\n";
 
-my $bugDescription;
 my $bugURL;
 if ($bugNumber) {
     $bugURL = "https://bugs.webkit.org/show_bug.cgi?id=$bugNumber";
+}
+
+if ($bugNumber && !$bugDescription) {
     my $bugXMLURL = "$bugURL&ctype=xml";
     # Perl has no built in XML processing, so we'll fetch and parse with curl and grep
     # Pass --insecure because some cygwin installs have no certs we don't
index af258eb641bb0d6392b5cebdaa370160e3739c5a..a751a7e02c22ad49b305ef413188b19acc5796df 100644 (file)
@@ -44,6 +44,7 @@ class Bug(object):
         return self.bug_dictionary["id"]
 
     def title(self):
+        # FIXME: Do we need to HTML unescape the title?
         return self.bug_dictionary["title"]
 
     def reporter_email(self):
index 392cd3210e3e414abd14d96dd8b6b22df1e5a15f..17e996c6d7057938d284ac73f30f02d61e51fc74 100644 (file)
@@ -64,6 +64,7 @@ class PrepareChangeLog(AbstractStep):
         args = [self._tool.port().script_path("prepare-ChangeLog")]
         if state.get("bug_id"):
             args.append("--bug=%s" % state["bug_id"])
+            args.append("--description=%s" % self._tool.bugs.fetch_bug(state["bug_id"]).title())
         if self._options.email:
             args.append("--email=%s" % self._options.email)