[
https://issues.apache.org/jira/browse/STORM-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14057979#comment-14057979
]
ASF GitHub Bot commented on STORM-321:
--------------------------------------
Github user d2r commented on a diff in the pull request:
https://github.com/apache/incubator-storm/pull/116#discussion_r14794451
--- Diff: dev-tools/jira-github-join.py ---
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from jira import JiraRepo
+from github import GitHub, mstr
+import re
+from optparse import OptionParser
+from datetime import datetime
+
+def daydiff(a, b):
+ return (a - b).days
+
+def main():
+ parser = OptionParser(usage="usage: %prog [options]")
+ parser.add_option("-g", "--github-user", dest="gituser",
+ type="string", help="github user, if not supplied no
auth is used", metavar="USER")
+
+ (options, args) = parser.parse_args()
+
+ jrepo = JiraRepo("https://issues.apache.org/jira/rest/api/2")
+ github = GitHub(options)
+
+ openPullRequests = github.openPulls("apache","incubator-storm")
+ stormJiraNumber = re.compile("STORM-[0-9]+")
+ openJiras = jrepo.openJiras("STORM")
+
+ jira2Pulls = {}
+ pullWithoutJira = []
+ pullWithBadJira = []
+
+ for pull in openPullRequests:
+ found = stormJiraNumber.search(pull.title())
+ if found:
+ jiraNum = found.group(0)
+ if not (jiraNum in openJiras):
+ pullWithBadJira.append(pull)
+ else:
+ if jira2Pulls.get(jiraNum) == None:
+ jira2Pulls[jiraNum] = []
+ jira2Pulls[jiraNum].append(pull)
+ else:
+ pullWithoutJira.append(pull);
+
+ now = datetime.utcnow()
+ print "Pull requests that need a JIRA:"
+ for pull in pullWithoutJira:
+ print ("%s\t%s\t%s\t%s"%(pull.html_url(), pull.title(),
daydiff(now, pull.created_at()), daydiff(now,
pull.updated_at()))).encode("UTF-8")
+
+ print "\nPull with bad JIRA:"
+ for pull in pullWithBadJira:
+ print ("%s\t%s\t%s\t%s"%(pull.html_url(), pull.title(),
daydiff(now, pull.created_at()), daydiff(now,
pull.updated_at()))).encode("UTF-8")
+
+ print "\nOpen JIRA to Pull Requests and Votes:"
+ for key, value in jira2Pulls.items():
+ print ("%s\t%s\t%s\t%s\t%s"%(key,
mstr(value),openJiras[key].getSummary(), daydiff(now,
openJiras[key].getCreated()), daydiff(now,
value[0].created_at()))).encode("UTF-8")
--- End diff --
On second thought, it would be nice to use `updated_at` instead of or in
addition to `created_at` for the last column here. This way we can sort by
staleness.
> No easy way to see JIRA ready for review
> ----------------------------------------
>
> Key: STORM-321
> URL: https://issues.apache.org/jira/browse/STORM-321
> Project: Apache Storm (Incubating)
> Issue Type: Improvement
> Reporter: Robert Joseph Evans
> Assignee: Robert Joseph Evans
>
> For many other projects the state of the JIRA is used to indicate that it is
> ready for review, for storm it really is if it has a pull request open
> against it or not. Also knowing which pull requests need to be reviewed can
> also be a pain.
> I propose a script that allows us to see these things using both github and
> JIRA rest APIs.
--
This message was sent by Atlassian JIRA
(v6.2#6252)