[Libreoffice-commits] dev-tools.git: 7 commits - qa/bugzillaAutomation.py qa/bugzillaChecker.py qa/comments.py qa/common.py qa/createMassPingLists.py

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed May 8 23:30:20 UTC 2019


 qa/bugzillaAutomation.py  |   90 +++++++++++++++++++++++++++++++++++++---------
 qa/bugzillaChecker.py     |    9 ----
 qa/comments.py            |    7 +++
 qa/common.py              |    4 --
 qa/createMassPingLists.py |    8 ++--
 5 files changed, 84 insertions(+), 34 deletions(-)

New commits:
commit dc797fcc14b79858896f66ca59415700595135d9
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Thu May 9 00:08:49 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Thu May 9 00:08:49 2019 +0200

    QA: this can go now

diff --git a/qa/bugzillaChecker.py b/qa/bugzillaChecker.py
index 326087f..8845958 100755
--- a/qa/bugzillaChecker.py
+++ b/qa/bugzillaChecker.py
@@ -39,9 +39,6 @@ retestUnconfirmedPeriodDays = 30
 # Unconfirmed bugs which last comment is written by the reporter
 inactiveUnconfirmedPeriodDays = 180
 
-# Needinfo bugs which last comment is written by the reporter
-retestNeedinfoPeriodDays = 60
-
 # Assigned bugs without activity
 inactiveAssignedPeriodDays = 90
 
@@ -316,11 +313,6 @@ def analyze_bugzilla_checkers(statList, bugzillaData, cfg):
                         value = [ rowId, row['last_change_time'], comments[-1]['creator'] ]
                         util_add_to_result(lResults, 'unconfirmed_last_comment_from_reporter', value)
 
-                elif rowStatus == 'NEEDINFO' and comments[-1]['creator'] == creatorMail and \
-                        datetime.datetime.strptime(row['last_change_time'], "%Y-%m-%dT%H:%M:%SZ") >= cfg['retestNeedinfoPeriod']:
-                    value = [ rowId, row['last_change_time'], comments[-1]['creator'] ]
-                    util_add_to_result(lResults, 'needinfo_provided', value)
-
             if autoFixed:
                 util_add_to_result(lResults, 'auto_fixed', autoFixedValue)
 
@@ -484,7 +476,6 @@ def runCfg():
     cfg['coloredInactiveUnconfirmedPeriod'] = common.util_convert_days_to_datetime(coloredPeriodDays + inactiveUnconfirmedPeriodDays)
     cfg['inactiveUnconfirmedPeriod'] = common.util_convert_days_to_datetime(inactiveUnconfirmedPeriodDays)
     cfg['coloredRetestUnconfirmedPeriod'] = common.util_convert_days_to_datetime(coloredPeriodDays + retestUnconfirmedPeriodDays)
-    cfg['retestNeedinfoPeriod'] = common.util_convert_days_to_datetime(retestNeedinfoPeriodDays)
     cfg['inactiveAssignedPeriod'] = common.util_convert_days_to_datetime(inactiveAssignedPeriodDays)
     cfg['coloredInactiveAssignedPeriod'] = common.util_convert_days_to_datetime(coloredPeriodDays + inactiveAssignedPeriodDays)
     return cfg
commit 974fbaa41d33f114514954b718bea0cef8ccc34d
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 23:53:50 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 23:53:50 2019 +0200

    QA: Automatically move NEEDINFO bugs back to UNCONFIRMED...
    
    if the last comment is from the reporter

diff --git a/qa/bugzillaAutomation.py b/qa/bugzillaAutomation.py
index afa71a1..dc6ba3b 100755
--- a/qa/bugzillaAutomation.py
+++ b/qa/bugzillaAutomation.py
@@ -32,7 +32,8 @@ def util_create_statList():
             },
         'untouched': {},
         'needInfoPing': {},
-        'needInfoFollowUpPing': {}
+        'needInfoFollowUpPing': {},
+        'needInfoToUnconfirmed': {}
     }
 def analyze_bugzilla(statList, bugzillaData, cfg):
     print("Analyze bugzilla\n", end="", flush=True)
@@ -68,12 +69,16 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                         "obsolete" not in [x.lower() for x in comment["tags"]] and \
                         ('MassPing-UntouchedBug' in comment["text"] or \
                         comment["text"].startswith("A polite ping, still working on this bug") or \
+                        '[Automated Action]' in comment["text"] or \
                         'MassPing-NeedInfo' in comment["text"]):
                     statList['tags']['addObsolete'].add(comment["id"])
 
             if len(comments) > 0:
-                if 'MassPing-UntouchedBug' in comments[-1]["text"]:
+                if rowStatus == 'NEEDINFO' and \
+                        comments[-1]['creator'] == row['creator']:
+                    statList['needInfoToUnconfirmed'][rowId] = rowCreator
 
+                if 'MassPing-UntouchedBug' in comments[-1]["text"]:
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
                             statList['tags']['addObsolete'].remove(comments[-1]["id"])
@@ -103,7 +108,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
                         statList['untouched'][rowId] = rowCreator
 
-def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment, changeCommand=""):
+def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment, addFirstLine, changeCommand=""):
     for bugId, creator in statList[keyInStatList].items():
         bugId = str(bugId)
 
@@ -114,34 +119,42 @@ def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment, chang
 
         if commentId not in rawData['bugs'][bugId]['comments'][-1]['text']:
 
-            firstLine = "Dear " + creator + ",\\n\\n"
-            command = '{"comment" : "' + firstLine + comment.replace('\n', '\\n') + '", "is_private" : false}'
+            if addFirstLine:
+                firstLine = "Dear " + creator + ",\\n\\n"
+                comment = firstLine + comment
+            command = '{"comment" : "' + comment.replace('\n', '\\n') + '", "is_private" : false}'
             urlPost = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
             rPost = requests.post(urlPost, command.encode('utf-8'))
             print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
             rPost.close()
 
-            if changeStatus:
+            if changeCommand:
                 urlPut = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '?api_key=' + cfg['configQA']['api-key']
                 rPut = requests.put(urlPut, changeCommand.encode('utf-8'))
-                print('Bug: ' + bugId + ' Changed to RESOLVED INSUFFICIENTDATA')
+                print('Bug: ' + bugId + ' - ' + changeCommand)
                 rPut.close()
 
+def automated_needInfoToUnconfirmed(statList):
+
+    print('== Move NEEDINFO to UNCONFIRMED ==')
+    command = '{"status" : "UNCONFIRMED"}'
+    post_comments_to_bugzilla(statList, "needInfoToUnconfirmed", 'NeedInfo-To-Unconfirmed', comments.needInfoToUnconfirmedComment, False, command)
+
 def automated_needInfoFollowUpPing(statList):
 
     print('== NEEDINFO FollowUp Ping ==')
     command = '{"status" : "RESOLVED", "resolution" : "INSUFFICIENTDATA"}'
-    post_comments_to_bugzilla(statList, "needInfoFollowUpPing", 'MassPing-NeedInfo-FollowUp', comments.needInfoFollowUpPingComment, command)
+    post_comments_to_bugzilla(statList, "needInfoFollowUpPing", 'MassPing-NeedInfo-FollowUp', comments.needInfoFollowUpPingComment, True, command)
 
 def automated_needInfoPing(statList):
 
     print('== NEEDINFO Ping ==')
-    post_comments_to_bugzilla(statList, "needInfoPing", 'MassPing-NeedInfo-Ping', comments.needInfoPingComment)
+    post_comments_to_bugzilla(statList, "needInfoPing", 'MassPing-NeedInfo-Ping', comments.needInfoPingComment, True)
 
 def automated_untouched(statList):
 
     print('== Untouched bugs ==')
-    post_comments_to_bugzilla(statList, "untouched", 'MassPing-UntouchedBug', comments.untouchedPingComment)
+    post_comments_to_bugzilla(statList, "untouched", 'MassPing-UntouchedBug', comments.untouchedPingComment, True)
 
 def automated_tagging(statList):
     #tags are sometimes not saved in bugzilla_dump.json
@@ -203,3 +216,4 @@ if __name__ == '__main__':
     automated_untouched(statList)
     automated_needInfoPing(statList)
     automated_needInfoFollowUpPing(statList)
+    automated_needInfoToUnconfirmed(statList)
diff --git a/qa/comments.py b/qa/comments.py
index 8222ed4..62aed5f 100644
--- a/qa/comments.py
+++ b/qa/comments.py
@@ -3,3 +3,5 @@ untouchedPingComment = "To make sure we're focusing on the bugs that affect our
 needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
 
 needInfoFollowUpPingComment = "Please read this message in its entirety before proceeding.\n\nYour bug report is being closed as INSUFFICIENTDATA due to inactivity and\na lack of information which is needed in order to accurately\nreproduce and confirm the problem. We encourage you to retest\nyour bug against the latest release. If the issue is still\npresent in the latest stable release, we need the following\ninformation (please ignore any that you've already provided):\n\na) Provide details of your system including your operating\n   system and the latest version of LibreOffice that you have\n   confirmed the bug to be present\n\nb) Provide easy to reproduce steps – the simpler the better\n\nc) Provide any test case(s) which will help us confirm the problem\n\nd) Provide screenshots of the problem if you think it might help\n\ne) Read all comments and provide any requested information\n\nOnce all of this is done, please set the bug back to UNCONFIRMED\nand we will attempt to re
 produce the issue. Please do not:\n\na) respond via email \n\nb) update the version field in the bug or any of the other details\n   on the top section of our bug tracker\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-FollowUp"
+
+needInfoToUnconfirmedComment = "[Automated Action] NeedInfo-To-Unconfirmed"
commit 0a21ff5fc28a6598e06c1193391e4ecc76dde760
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 23:08:18 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 23:08:18 2019 +0200

    QA: Automate the NEEDINFO followup ping

diff --git a/qa/bugzillaAutomation.py b/qa/bugzillaAutomation.py
index 0a25a6b..afa71a1 100755
--- a/qa/bugzillaAutomation.py
+++ b/qa/bugzillaAutomation.py
@@ -18,6 +18,8 @@ untouchedPeriodDays = 365
 
 needInfoPingPeriodDays = 180
 
+needInfoFollowUpPingPeriodDays = 30
+
 #Path to addObsolete.txt
 addObsoleteDir = '/home/xisco/dev-tools/qa'
 
@@ -29,7 +31,8 @@ def util_create_statList():
                 'removeObsolete': set()
             },
         'untouched': {},
-        'needInfoPing': {}
+        'needInfoPing': {},
+        'needInfoFollowUpPing': {}
     }
 def analyze_bugzilla(statList, bugzillaData, cfg):
     print("Analyze bugzilla\n", end="", flush=True)
@@ -82,7 +85,11 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             statList['tags']['addObsolete'].remove(comments[-1]["id"])
                         else:
                             statList['tags']['removeObsolete'].add(comments[-1]["id"])
-                elif comments[-1]["text"].startswith(needInfoFollowUpPingComment) or \
+                    else:
+                        if datetime.datetime.strptime(row['last_change_time'], "%Y-%m-%dT%H:%M:%SZ") < cfg['needInfoFollowUpPingPeriod']:
+                            statList['needInfoFollowUpPing'][rowId] = rowCreator
+
+                elif 'MassPing-NeedInfo' in comments[-1]["text"] or \
                         comments[-1]["text"].startswith("A polite ping, still working on this bug"):
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
@@ -96,9 +103,10 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
                         statList['untouched'][rowId] = rowCreator
 
-def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment):
+def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment, changeCommand=""):
     for bugId, creator in statList[keyInStatList].items():
         bugId = str(bugId)
+
         urlGet = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
         rGet = requests.get(urlGet)
         rawData = json.loads(rGet.text)
@@ -113,6 +121,18 @@ def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment):
             print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
             rPost.close()
 
+            if changeStatus:
+                urlPut = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '?api_key=' + cfg['configQA']['api-key']
+                rPut = requests.put(urlPut, changeCommand.encode('utf-8'))
+                print('Bug: ' + bugId + ' Changed to RESOLVED INSUFFICIENTDATA')
+                rPut.close()
+
+def automated_needInfoFollowUpPing(statList):
+
+    print('== NEEDINFO FollowUp Ping ==')
+    command = '{"status" : "RESOLVED", "resolution" : "INSUFFICIENTDATA"}'
+    post_comments_to_bugzilla(statList, "needInfoFollowUpPing", 'MassPing-NeedInfo-FollowUp', comments.needInfoFollowUpPingComment, command)
+
 def automated_needInfoPing(statList):
 
     print('== NEEDINFO Ping ==')
@@ -164,6 +184,7 @@ def runCfg():
     cfg = common.get_config()
     cfg['untouchedPeriod'] = common.util_convert_days_to_datetime(untouchedPeriodDays)
     cfg['needInfoPingPeriod'] = common.util_convert_days_to_datetime(needInfoPingPeriodDays)
+    cfg['needInfoFollowUpPingPeriod'] = common.util_convert_days_to_datetime(needInfoFollowUpPingPeriodDays)
 
     return cfg
 
@@ -181,3 +202,4 @@ if __name__ == '__main__':
     automated_tagging(statList)
     automated_untouched(statList)
     automated_needInfoPing(statList)
+    automated_needInfoFollowUpPing(statList)
diff --git a/qa/comments.py b/qa/comments.py
index 4e28c84..8222ed4 100644
--- a/qa/comments.py
+++ b/qa/comments.py
@@ -2,4 +2,4 @@ untouchedPingComment = "To make sure we're focusing on the bugs that affect our
 
 needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
 
-needInfoFollowUpPingComment = "Please read this message in its entirety before proceeding.\n\nYour bug report is being closed as INSUFFICIENTDATA due to inactivity and\na lack of information which is needed in order to accurately\nreproduce and confirm the problem. We encourage you to retest\nyour bug against the latest release. If the issue is still\npresent in the latest stable release, we need the following\ninformation (please ignore any that you've already provided):\n\na) Provide details of your system including your operating\n   system and the latest version of LibreOffice that you have\n   confirmed the bug to be present\n\nb) Provide easy to reproduce steps – the simpler the better\n\nc) Provide any test case(s) which will help us confirm the problem\n\nd) Provide screenshots of the problem if you think it might help\n\ne) Read all comments and provide any requested information\n\nOnce all of this is done, please set the bug back to UNCONFIRMED\nand we will attempt to re
 produce the issue. Please do not:\n\na) respond via email \n\nb) update the version field in the bug or any of the other details\n   on the top section of our bug tracker\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo"
+needInfoFollowUpPingComment = "Please read this message in its entirety before proceeding.\n\nYour bug report is being closed as INSUFFICIENTDATA due to inactivity and\na lack of information which is needed in order to accurately\nreproduce and confirm the problem. We encourage you to retest\nyour bug against the latest release. If the issue is still\npresent in the latest stable release, we need the following\ninformation (please ignore any that you've already provided):\n\na) Provide details of your system including your operating\n   system and the latest version of LibreOffice that you have\n   confirmed the bug to be present\n\nb) Provide easy to reproduce steps – the simpler the better\n\nc) Provide any test case(s) which will help us confirm the problem\n\nd) Provide screenshots of the problem if you think it might help\n\ne) Read all comments and provide any requested information\n\nOnce all of this is done, please set the bug back to UNCONFIRMED\nand we will attempt to re
 produce the issue. Please do not:\n\na) respond via email \n\nb) update the version field in the bug or any of the other details\n   on the top section of our bug tracker\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-FollowUp"
commit 0a28e2cdb867f940595bc3cb06680c0e7e4868a7
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 21:21:58 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 21:21:58 2019 +0200

    QA: move comments to their own file

diff --git a/qa/bugzillaAutomation.py b/qa/bugzillaAutomation.py
index c4c24ef..0a25a6b 100755
--- a/qa/bugzillaAutomation.py
+++ b/qa/bugzillaAutomation.py
@@ -7,14 +7,13 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
+import comments
 import common
 import requests
 import datetime
 import os
 import json
 
-needInfoFollowUpPingComment = "Dear Bug Submitter,\n\nPlease read this message in its entirety before proceeding."
-
 untouchedPeriodDays = 365
 
 needInfoPingPeriodDays = 180
@@ -66,8 +65,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                         "obsolete" not in [x.lower() for x in comment["tags"]] and \
                         ('MassPing-UntouchedBug' in comment["text"] or \
                         comment["text"].startswith("A polite ping, still working on this bug") or \
-                        'MassPing-NeedInfo-Ping' in comment["text"] or \
-                        comment["text"].startswith(needInfoFollowUpPingComment)):
+                        'MassPing-NeedInfo' in comment["text"]):
                     statList['tags']['addObsolete'].add(comment["id"])
 
             if len(comments) > 0:
@@ -118,12 +116,12 @@ def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment):
 def automated_needInfoPing(statList):
 
     print('== NEEDINFO Ping ==')
-    post_comments_to_bugzilla(statList, "needInfoPing", 'MassPing-NeedInfo-Ping', common.needInfoPingComment)
+    post_comments_to_bugzilla(statList, "needInfoPing", 'MassPing-NeedInfo-Ping', comments.needInfoPingComment)
 
 def automated_untouched(statList):
 
     print('== Untouched bugs ==')
-    post_comments_to_bugzilla(statList, "untouched", 'MassPing-UntouchedBug', common.untouchedPingComment)
+    post_comments_to_bugzilla(statList, "untouched", 'MassPing-UntouchedBug', comments.untouchedPingComment)
 
 def automated_tagging(statList):
     #tags are sometimes not saved in bugzilla_dump.json
diff --git a/qa/comments.py b/qa/comments.py
new file mode 100644
index 0000000..4e28c84
--- /dev/null
+++ b/qa/comments.py
@@ -0,0 +1,5 @@
+untouchedPingComment = "To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.\n\nThere have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.\n\nIf you have time, please do the following:\n\nTest to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/\n\nIf the bug is present, please leave a comment that includes the information from Help - About LibreOffice.\n \nIf the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice.\n\nPlease DO NOT\n\nUpdate the versi
 on field\nReply via email (please reply directly on the bug tracker)\nSet the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not \nappropriate in this case)\n\n\nIf you want to do more to help you can test to see if your issue is a REGRESSION. To do so:\n1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/\n\n2. Test your bug\n3. Leave a comment with your results.\n4a. If the bug was present with 3.3 - set version to 'inherited from OOo';\n4b. If the bug was not present in 3.3 - add 'regression' to keyword\n\n\nFeel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa\n\nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-UntouchedBug"
+
+needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
+
+needInfoFollowUpPingComment = "Please read this message in its entirety before proceeding.\n\nYour bug report is being closed as INSUFFICIENTDATA due to inactivity and\na lack of information which is needed in order to accurately\nreproduce and confirm the problem. We encourage you to retest\nyour bug against the latest release. If the issue is still\npresent in the latest stable release, we need the following\ninformation (please ignore any that you've already provided):\n\na) Provide details of your system including your operating\n   system and the latest version of LibreOffice that you have\n   confirmed the bug to be present\n\nb) Provide easy to reproduce steps – the simpler the better\n\nc) Provide any test case(s) which will help us confirm the problem\n\nd) Provide screenshots of the problem if you think it might help\n\ne) Read all comments and provide any requested information\n\nOnce all of this is done, please set the bug back to UNCONFIRMED\nand we will attempt to re
 produce the issue. Please do not:\n\na) respond via email \n\nb) update the version field in the bug or any of the other details\n   on the top section of our bug tracker\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo"
diff --git a/qa/common.py b/qa/common.py
index f233b14..3b94860 100755
--- a/qa/common.py
+++ b/qa/common.py
@@ -45,10 +45,6 @@ system_list = ['All', 'Linux (All)', 'Android', 'Windows (All)', 'Mac OS X (All)
 
 urlShowBug = "https://bugs.documentfoundation.org/show_bug.cgi?id="
 
-untouchedPingComment = "To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.\n\nThere have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.\n\nIf you have time, please do the following:\n\nTest to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/\n\nIf the bug is present, please leave a comment that includes the information from Help - About LibreOffice.\n \nIf the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice.\n\nPlease DO NOT\n\nUpdate the versi
 on field\nReply via email (please reply directly on the bug tracker)\nSet the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not \nappropriate in this case)\n\n\nIf you want to do more to help you can test to see if your issue is a REGRESSION. To do so:\n1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/\n\n2. Test your bug\n3. Leave a comment with your results.\n4a. If the bug was present with 3.3 - set version to 'inherited from OOo';\n4b. If the bug was not present in 3.3 - add 'regression' to keyword\n\n\nFeel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa\n\nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-UntouchedBug"
-
-needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
-
 def util_convert_days_to_datetime(period):
     todayDate = datetime.datetime.now().replace(hour=0, minute=0,second=0)
     return todayDate - datetime.timedelta(days= period)
commit 5544cc38cd526684801672b0caaf5ca49167134d
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 21:08:46 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 21:08:46 2019 +0200

    QA: we can remove the first line from this comment now

diff --git a/qa/common.py b/qa/common.py
index 6972ac1..f233b14 100755
--- a/qa/common.py
+++ b/qa/common.py
@@ -45,7 +45,7 @@ system_list = ['All', 'Linux (All)', 'Android', 'Windows (All)', 'Mac OS X (All)
 
 urlShowBug = "https://bugs.documentfoundation.org/show_bug.cgi?id="
 
-untouchedPingComment = "** Please read this message in its entirety before responding **\n\nTo make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.\n\nThere have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.\n\nIf you have time, please do the following:\n\nTest to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/\n\nIf the bug is present, please leave a comment that includes the information from Help - About LibreOffice.\n \nIf the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information
  from Help - About LibreOffice.\n\nPlease DO NOT\n\nUpdate the version field\nReply via email (please reply directly on the bug tracker)\nSet the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not \nappropriate in this case)\n\n\nIf you want to do more to help you can test to see if your issue is a REGRESSION. To do so:\n1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/\n\n2. Test your bug\n3. Leave a comment with your results.\n4a. If the bug was present with 3.3 - set version to 'inherited from OOo';\n4b. If the bug was not present in 3.3 - add 'regression' to keyword\n\n\nFeel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa\n\nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-
 UntouchedBug"
+untouchedPingComment = "To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.\n\nThere have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.\n\nIf you have time, please do the following:\n\nTest to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/\n\nIf the bug is present, please leave a comment that includes the information from Help - About LibreOffice.\n \nIf the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice.\n\nPlease DO NOT\n\nUpdate the versi
 on field\nReply via email (please reply directly on the bug tracker)\nSet the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not \nappropriate in this case)\n\n\nIf you want to do more to help you can test to see if your issue is a REGRESSION. To do so:\n1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/\n\n2. Test your bug\n3. Leave a comment with your results.\n4a. If the bug was present with 3.3 - set version to 'inherited from OOo';\n4b. If the bug was not present in 3.3 - add 'regression' to keyword\n\n\nFeel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa\n\nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-UntouchedBug"
 
 needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
 
commit 98bea7a9616f61a05f15ba83aa1fbec549a9eca5
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 20:56:53 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 21:06:20 2019 +0200

    QA: unify this

diff --git a/qa/bugzillaAutomation.py b/qa/bugzillaAutomation.py
index eaefbd6..c4c24ef 100755
--- a/qa/bugzillaAutomation.py
+++ b/qa/bugzillaAutomation.py
@@ -29,7 +29,7 @@ def util_create_statList():
                 'addObsolete': set(),
                 'removeObsolete': set()
             },
-        'untouched': [],
+        'untouched': {},
         'needInfoPing': {}
     }
 def analyze_bugzilla(statList, bugzillaData, cfg):
@@ -64,14 +64,14 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
 
                 if rowStatus != 'NEEDINFO' and \
                         "obsolete" not in [x.lower() for x in comment["tags"]] and \
-                        (comment["text"].startswith(common.untouchedPingComment[:250]) or \
+                        ('MassPing-UntouchedBug' in comment["text"] or \
                         comment["text"].startswith("A polite ping, still working on this bug") or \
                         'MassPing-NeedInfo-Ping' in comment["text"] or \
                         comment["text"].startswith(needInfoFollowUpPingComment)):
                     statList['tags']['addObsolete'].add(comment["id"])
 
             if len(comments) > 0:
-                if comments[-1]["text"].startswith(common.untouchedPingComment[:250]):
+                if 'MassPing-UntouchedBug' in comments[-1]["text"]:
 
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
@@ -96,46 +96,34 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             rowStatus == 'NEW' and 'needsUXEval' not in rowKeywords and 'easyHack' not in rowKeywords and \
                             row['component'] != 'Documentation' and (row['product'] == 'LibreOffice' or \
                             row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
-                        statList['untouched'].append(rowId)
+                        statList['untouched'][rowId] = rowCreator
 
-def automated_needInfoPing(statList):
-
-    print('== NEEDINFO Ping ==')
-    for bugId, creator in statList['needInfoPing'].items():
+def post_comments_to_bugzilla(statList, keyInStatList, commentId, comment):
+    for bugId, creator in statList[keyInStatList].items():
         bugId = str(bugId)
-
-
         urlGet = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
         rGet = requests.get(urlGet)
         rawData = json.loads(rGet.text)
         rGet.close()
 
-        if 'MassPing-NeedInfo-Ping' not in rawData['bugs'][bugId]['comments'][-1]['text']:
+        if commentId not in rawData['bugs'][bugId]['comments'][-1]['text']:
 
             firstLine = "Dear " + creator + ",\\n\\n"
-            command = '{"comment" : "' + firstLine + common.needInfoPingComment.replace('\n', '\\n') + '", "is_private" : false}'
+            command = '{"comment" : "' + firstLine + comment.replace('\n', '\\n') + '", "is_private" : false}'
             urlPost = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
             rPost = requests.post(urlPost, command.encode('utf-8'))
             print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
             rPost.close()
 
-def automated_untouched(statList):
+def automated_needInfoPing(statList):
 
-    print('== Untouched bugs ==')
-    for bugId in statList['untouched']:
-        bugId = str(bugId)
+    print('== NEEDINFO Ping ==')
+    post_comments_to_bugzilla(statList, "needInfoPing", 'MassPing-NeedInfo-Ping', common.needInfoPingComment)
 
-        urlGet = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
-        rGet = requests.get(urlGet)
-        rawData = json.loads(rGet.text)
-        rGet.close()
+def automated_untouched(statList):
 
-        if rawData['bugs'][bugId]['comments'][-1]['text'][:250] != common.untouchedPingComment[:250]:
-            command = '{"comment" : "' + common.untouchedPingComment.replace('\n', '\\n') + '", "is_private" : false}'
-            urlPost = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
-            rPost = requests.post(urlPost, command)
-            print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
-            rPost.close()
+    print('== Untouched bugs ==')
+    post_comments_to_bugzilla(statList, "untouched", 'MassPing-UntouchedBug', common.untouchedPingComment)
 
 def automated_tagging(statList):
     #tags are sometimes not saved in bugzilla_dump.json
diff --git a/qa/createMassPingLists.py b/qa/createMassPingLists.py
index 81db4b2..14e6dbc 100755
--- a/qa/createMassPingLists.py
+++ b/qa/createMassPingLists.py
@@ -28,10 +28,10 @@ def analyze_bugzilla(statList, bugzillaData):
             comments = row['comments'][1:]
 
             if len(comments) > 0:
-                if comments[-1]["text"].startswith(common.untouchedPingComment[:250]):
+                if "MassPing-UntouchedBug" in comments[-1]["text"]:
 
-                    if len(comments) > 1 and comments[-2]["text"].startswith(common.untouchedPingComment[:250]):
-                        if len(comments) > 2 and comments[-3]["text"].startswith(common.untouchedPingComment[:250]):
+                    if len(comments) > 1 and "MassPing-UntouchedBug" in comments[-2]["text"]:
+                        if len(comments) > 2 and "MassPing-UntouchedBug" in comments[-3]["text"]:
                             statList['3years'].append(rowId)
                         else:
                             statList['2years'].append(rowId)
commit 2fb7d9087705f00dbaaa8e98167a6915627fc6c5
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Wed May 8 20:31:07 2019 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Wed May 8 20:31:07 2019 +0200

    QA: Automate NEEDINFO ping

diff --git a/qa/bugzillaAutomation.py b/qa/bugzillaAutomation.py
index b81e2f9..eaefbd6 100755
--- a/qa/bugzillaAutomation.py
+++ b/qa/bugzillaAutomation.py
@@ -17,6 +17,8 @@ needInfoFollowUpPingComment = "Dear Bug Submitter,\n\nPlease read this message i
 
 untouchedPeriodDays = 365
 
+needInfoPingPeriodDays = 180
+
 #Path to addObsolete.txt
 addObsoleteDir = '/home/xisco/dev-tools/qa'
 
@@ -27,7 +29,8 @@ def util_create_statList():
                 'addObsolete': set(),
                 'removeObsolete': set()
             },
-        'untouched': []
+        'untouched': [],
+        'needInfoPing': {}
     }
 def analyze_bugzilla(statList, bugzillaData, cfg):
     print("Analyze bugzilla\n", end="", flush=True)
@@ -45,6 +48,14 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
 
             rowKeywords = row['keywords']
 
+            rowCreator = row['creator_detail']['real_name']
+            if not rowCreator:
+                rowCreator = row['creator_detail']['email'].split('@')[0]
+
+            if rowStatus == "NEEDINFO" and \
+                    datetime.datetime.strptime(row['last_change_time'], "%Y-%m-%dT%H:%M:%SZ") < cfg['needInfoPingPeriod']:
+                statList['needInfoPing'][rowId] = rowCreator
+
             comments = row['comments'][1:]
             for idx, comment in enumerate(comments):
                 #Check for duplicated comments
@@ -55,7 +66,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                         "obsolete" not in [x.lower() for x in comment["tags"]] and \
                         (comment["text"].startswith(common.untouchedPingComment[:250]) or \
                         comment["text"].startswith("A polite ping, still working on this bug") or \
-                        comment["text"].startswith(common.needInfoPingComment) or \
+                        'MassPing-NeedInfo-Ping' in comment["text"] or \
                         comment["text"].startswith(needInfoFollowUpPingComment)):
                     statList['tags']['addObsolete'].add(comment["id"])
 
@@ -67,7 +78,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             statList['tags']['addObsolete'].remove(comments[-1]["id"])
                         else:
                             statList['tags']['removeObsolete'].add(comments[-1]["id"])
-                elif comments[-1]["text"].startswith(common.needInfoPingComment):
+                elif 'MassPing-NeedInfo-Ping' in comments[-1]["text"]:
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
                             statList['tags']['addObsolete'].remove(comments[-1]["id"])
@@ -87,12 +98,32 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
                             row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
                         statList['untouched'].append(rowId)
 
+def automated_needInfoPing(statList):
+
+    print('== NEEDINFO Ping ==')
+    for bugId, creator in statList['needInfoPing'].items():
+        bugId = str(bugId)
+
+
+        urlGet = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
+        rGet = requests.get(urlGet)
+        rawData = json.loads(rGet.text)
+        rGet.close()
+
+        if 'MassPing-NeedInfo-Ping' not in rawData['bugs'][bugId]['comments'][-1]['text']:
+
+            firstLine = "Dear " + creator + ",\\n\\n"
+            command = '{"comment" : "' + firstLine + common.needInfoPingComment.replace('\n', '\\n') + '", "is_private" : false}'
+            urlPost = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
+            rPost = requests.post(urlPost, command.encode('utf-8'))
+            print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
+            rPost.close()
+
 def automated_untouched(statList):
 
     print('== Untouched bugs ==')
     for bugId in statList['untouched']:
         bugId = str(bugId)
-        command = '{"comment" : "' + common.untouchedPingComment.replace('\n', '\\n') + '", "is_private" : false}'
 
         urlGet = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
         rGet = requests.get(urlGet)
@@ -100,6 +131,7 @@ def automated_untouched(statList):
         rGet.close()
 
         if rawData['bugs'][bugId]['comments'][-1]['text'][:250] != common.untouchedPingComment[:250]:
+            command = '{"comment" : "' + common.untouchedPingComment.replace('\n', '\\n') + '", "is_private" : false}'
             urlPost = 'https://bugs.documentfoundation.org/rest/bug/' + bugId + '/comment?api_key=' + cfg['configQA']['api-key']
             rPost = requests.post(urlPost, command)
             print('Bug: ' + bugId + ' - Comment: ' + str(json.loads(rPost.text)['id']))
@@ -145,6 +177,7 @@ def automated_tagging(statList):
 def runCfg():
     cfg = common.get_config()
     cfg['untouchedPeriod'] = common.util_convert_days_to_datetime(untouchedPeriodDays)
+    cfg['needInfoPingPeriod'] = common.util_convert_days_to_datetime(needInfoPingPeriodDays)
 
     return cfg
 
@@ -161,3 +194,4 @@ if __name__ == '__main__':
 
     automated_tagging(statList)
     automated_untouched(statList)
+    automated_needInfoPing(statList)
diff --git a/qa/common.py b/qa/common.py
index 34d6feb..6972ac1 100755
--- a/qa/common.py
+++ b/qa/common.py
@@ -47,7 +47,7 @@ urlShowBug = "https://bugs.documentfoundation.org/show_bug.cgi?id="
 
 untouchedPingComment = "** Please read this message in its entirety before responding **\n\nTo make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.\n\nThere have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.\n\nIf you have time, please do the following:\n\nTest to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/\n\nIf the bug is present, please leave a comment that includes the information from Help - About LibreOffice.\n \nIf the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information
  from Help - About LibreOffice.\n\nPlease DO NOT\n\nUpdate the version field\nReply via email (please reply directly on the bug tracker)\nSet the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not \nappropriate in this case)\n\n\nIf you want to do more to help you can test to see if your issue is a REGRESSION. To do so:\n1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/\n\n2. Test your bug\n3. Leave a comment with your results.\n4a. If the bug was present with 3.3 - set version to 'inherited from OOo';\n4b. If the bug was not present in 3.3 - add 'regression' to keyword\n\n\nFeel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa\n\nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-
 UntouchedBug"
 
-needInfoPingComment = "Dear Bug Submitter,\n\nThis bug has been in NEEDINFO status with no change for at least"
+needInfoPingComment = "This bug has been in NEEDINFO status with no change for at least\n6 months. Please provide the requested information as soon as\npossible and mark the bug as UNCONFIRMED. Due to regular bug\ntracker maintenance, if the bug is still in NEEDINFO status with\nno change in 30 days the QA team will close the bug as INSUFFICIENTDATA\ndue to lack of needed information.\n\nFor more information about our NEEDINFO policy please read the\nwiki located here:\nhttps://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO\n\nIf you have already provided the requested information, please\nmark the bug as UNCONFIRMED so that the QA team knows that the\nbug is ready to be confirmed.\n \nThank you for helping us make LibreOffice even better for everyone!\n\nWarm Regards,\nQA Team\n\nMassPing-NeedInfo-Ping"
 
 def util_convert_days_to_datetime(period):
     todayDate = datetime.datetime.now().replace(hour=0, minute=0,second=0)
diff --git a/qa/createMassPingLists.py b/qa/createMassPingLists.py
index a13f80f..81db4b2 100755
--- a/qa/createMassPingLists.py
+++ b/qa/createMassPingLists.py
@@ -38,7 +38,7 @@ def analyze_bugzilla(statList, bugzillaData):
                     else:
                         statList['1year'].append(rowId)
 
-                elif comments[-1]["text"].startswith(common.needInfoPingComment):
+                elif 'MassPing-NeedInfo-Ping' in comments[-1]["text"]:
                     if row['status'] == 'NEEDINFO':
                         statList['needinfo'].append(rowId)
 


More information about the Libreoffice-commits mailing list