* Make dryrun the default

And add a "--production" option to actually enable making changes

Fixes #1333

* Remove short version of the '--production' argument to avoid footgun

Co-authored-by: Suhaib Mujahid <suhaibmujahid@gmail.com>
This commit is contained in:
Marco Castelluccio 2022-03-18 18:10:22 +01:00 коммит произвёл GitHub
Родитель 63a9db6109
Коммит d23b911d8a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
9 изменённых файлов: 76 добавлений и 80 удалений

Просмотреть файл

@ -623,11 +623,10 @@ class BzCleaner(object):
"""Get the argumends from the command line"""
parser = argparse.ArgumentParser(description=self.description())
parser.add_argument(
"-d",
"--dryrun",
"--production",
dest="dryrun",
action="store_true",
help="Just do the query, and print emails to console without emailing anyone",
action="store_false",
help="If the flag is not passed, just do the query, and print emails to console without emailing anyone",
)
if not self.ignore_date():

Просмотреть файл

@ -32,11 +32,10 @@ class MultiNaggers(object):
"""Get the argumends from the command line"""
parser = argparse.ArgumentParser(description=self.description())
parser.add_argument(
"-d",
"--dryrun",
"--production",
dest="dryrun",
action="store_true",
help="Just do the query, and print emails to console without emailing anyone",
action="store_false",
help="If the flag is not passed, just do the query, and print emails to console without emailing anyone",
)
parser.add_argument(

Просмотреть файл

@ -75,11 +75,10 @@ def check_dates(dryrun=False):
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Check if next release date is ok")
parser.add_argument(
"-d",
"--dryrun",
"--production",
dest="dryrun",
action="store_true",
help="Just do the query, and print emails to console without emailing anyone",
action="store_false",
help="If the flag is not passed, just do the query, and print emails to console without emailing anyone",
)
args = parser.parse_args()
try:

Просмотреть файл

@ -32,11 +32,10 @@ def check_people(date, dryrun=False):
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Check if next release date is ok")
parser.add_argument(
"-d",
"--dryrun",
"--production",
dest="dryrun",
action="store_true",
help="Just do the query, and print emails to console without emailing anyone",
action="store_false",
help="If the flag is not passed, just do the query, and print emails to console without emailing anyone",
)
parser.add_argument(
"-D",

Просмотреть файл

@ -14,7 +14,7 @@ pip install -r requirements.txt
python -m auto_nag.log --clean
# Close inactive intermittent bugs
python -m auto_nag.scripts.close_intermittents
python -m auto_nag.scripts.close_intermittents --production
# Send a mail if the logs are not empty
# MUST ALWAYS BE THE LAST COMMAND

Просмотреть файл

@ -15,7 +15,7 @@ python -m auto_nag.log --clean
# Code freeze week information for release managers
# Daily (but really runs during the soft freeze week)
python -m auto_nag.scripts.code_freeze_week -D yesterday
python -m auto_nag.scripts.code_freeze_week -D yesterday --production
# Send a mail if the logs are not empty
# MUST ALWAYS BE THE LAST COMMAND

Просмотреть файл

@ -14,7 +14,7 @@ pip install -r requirements.txt
python -m auto_nag.log --clean
# Close inactive intermittent bugs
python -m auto_nag.scripts.survey_sec_bugs
python -m auto_nag.scripts.survey_sec_bugs --production
# Send a mail if the logs are not empty
# MUST ALWAYS BE THE LAST COMMAND

Просмотреть файл

@ -14,135 +14,135 @@ python -m auto_nag.log --clean
# Not up-to-date release date
# Daily
python -m auto_nag.next_release
python -m auto_nag.next_release --production
# Send a todo list to set priority
# Daily
python -m auto_nag.scripts.to_triage
python -m auto_nag.scripts.to_triage --production
# Nag triage fallback to update calendar
# Daily
python -m auto_nag.round_robin_fallback
python -m auto_nag.round_robin_fallback --production
# Needinfo assignee when a patch could be uplifted to beta
# Daily
python -m auto_nag.scripts.uplift_beta
python -m auto_nag.scripts.uplift_beta --production
# What is fixed in nightly but affecting beta or release
# Daily
python -m auto_nag.scripts.missed_uplifts
python -m auto_nag.scripts.missed_uplifts --production
# Top crash with an incorrect severity
# Pretty rare
python -m auto_nag.scripts.topcrash_bad_severity
python -m auto_nag.scripts.topcrash_bad_severity --production
# Bug with both the regression and feature keywords
# Pretty rare
python -m auto_nag.scripts.feature_regression
python -m auto_nag.scripts.feature_regression --production
# Detect one word summary
# a bit rare
python -m auto_nag.scripts.one_two_word_summary
python -m auto_nag.scripts.one_two_word_summary --production
# Bugs where the reporter has a needinfo
# Pretty common
python -m auto_nag.scripts.reporter_with_ni
python -m auto_nag.scripts.reporter_with_ni --production
# Notify bugs in untriaged with an important severity
python -m auto_nag.scripts.untriage_important_sev
python -m auto_nag.scripts.untriage_important_sev --production
# Needinfo the assignee or the triage owner when a bug has leave-open keyword an no activity
# Pretty common
python -m auto_nag.scripts.leave_open_no_activity
python -m auto_nag.scripts.leave_open_no_activity --production
# Needinfo the triage owner or the assignee when we find meta bugs not depending on bugs and no activity
# Pretty common
python -m auto_nag.scripts.meta_no_deps_no_activity
python -m auto_nag.scripts.meta_no_deps_no_activity --production
# Several tools here
# 1) has an unlanded patch or some flags not up-to-date
# Pretty rare
# 2) Tracked bugs
# 3) Tracked bugs with needinfos
python -m auto_nag.scripts.multi_nag
python -m auto_nag.scripts.multi_nag --production
# has a r+ patch, is open, has no activity for few weeks
# Pretty common
python -m auto_nag.scripts.not_landed
python -m auto_nag.scripts.not_landed --production
# New workflow
# https://docs.google.com/document/d/1EHuWa-uR-7Sq63X1ZiDN1mvJ9gQtWiqYrCifkySJyW0/edit#
# https://docs.google.com/drawings/d/1oZA-AUvkOxGMNhZNofL8Wlfk6ol3o5ATQCV5DJJKbwM/edit
python -m auto_nag.scripts.workflow.multi_nag
python -m auto_nag.scripts.workflow.multi_nag --production
# Defect or task with the "feature" keyword
python -m auto_nag.scripts.feature_but_type_defect_task
python -m auto_nag.scripts.feature_but_type_defect_task --production
# Defect with the "meta" keyword
python -m auto_nag.scripts.meta_defect
python -m auto_nag.scripts.meta_defect --production
# Bugs with several duplicates
python -m auto_nag.scripts.several_dups
python -m auto_nag.scripts.several_dups --production
# Bugs with a lot of cc
python -m auto_nag.scripts.lot_of_cc
python -m auto_nag.scripts.lot_of_cc --production
# Bugs with a lot of votes
python -m auto_nag.scripts.lot_of_votes
python -m auto_nag.scripts.lot_of_votes --production
# reporter has a needinfo and no activity for the last X weeks
# Pretty common
python -m auto_nag.scripts.newbie_with_ni -d
python -m auto_nag.scripts.newbie_with_ni
# Bug caused several regressions recently reported
# Pretty rare
python -m auto_nag.scripts.warn_regressed_by
python -m auto_nag.scripts.warn_regressed_by --production
# Defect starting with please or enable in the title
python -m auto_nag.scripts.defect_with_please_or_enable
python -m auto_nag.scripts.defect_with_please_or_enable --production
# Regressions without regressed_by and some dependencies (blocks, depends_on)
# Pretty rare
python -m auto_nag.scripts.regression_without_regressed_by
python -m auto_nag.scripts.regression_without_regressed_by --production
# Bugs with a fuzzing bisection but without regressed_by
python -m auto_nag.scripts.fuzzing_bisection_without_regressed_by
python -m auto_nag.scripts.fuzzing_bisection_without_regressed_by --production
# Suggest components for untriaged bugs (daily, full list without confidence threshold)
python -m auto_nag.scripts.component --frequency daily
python -m auto_nag.scripts.component --frequency daily --production
# Try to detect potential wrong bug types using bugbug
python -m auto_nag.scripts.defectenhancementtask
python -m auto_nag.scripts.defectenhancementtask --production
# Try to detect potential missing Has STR using bugbug
python -m auto_nag.scripts.stepstoreproduce
python -m auto_nag.scripts.stepstoreproduce --production
# Unassign inactive bugs with the good-first-bug keyword
python -m auto_nag.scripts.good_first_bug_unassign_inactive
python -m auto_nag.scripts.good_first_bug_unassign_inactive --production
# Look for missing bugzilla comments for recently-landed changesets
python -m auto_nag.scripts.missed_landing_comment
python -m auto_nag.scripts.missed_landing_comment --production
# Look for recently landed changesets referencing leave-open security bugs
python -m auto_nag.scripts.leave_open_sec
python -m auto_nag.scripts.leave_open_sec --production
# Look for recent PDF.js updates that fix some bug
python -m auto_nag.scripts.pdfjs_update
python -m auto_nag.scripts.pdfjs_update --production
# Look for tracked bugs with a needinfo from a release manager
python -m auto_nag.scripts.ni_from_manager
python -m auto_nag.scripts.ni_from_manager --production
# Approve tracking request for bugs automatically filed for expiring telemetry probes
python -m auto_nag.scripts.telemetry_expiry_tracking_autoapproval
python -m auto_nag.scripts.telemetry_expiry_tracking_autoapproval --production
# Set "Has Regression Range" to "yes" on bugs where "Regressed By" is set
python -m auto_nag.scripts.regressed_by_no_has_regression_range
python -m auto_nag.scripts.regressed_by_no_has_regression_range --production
# Needinfo triage owner on bugs assigned to inactive accounts
python -m auto_nag.scripts.assignee_no_login
python -m auto_nag.scripts.assignee_no_login --production
# Needinfo for bugs with inconsistent severity flags
python -m auto_nag.scripts.severity_inconsistency
python -m auto_nag.scripts.severity_inconsistency --production
# Needinfo for bugs with underestimated severity levels
python -m auto_nag.scripts.severity_underestimated

Просмотреть файл

@ -11,11 +11,11 @@ python -m auto_nag.log --clean
# Bug fixed without assignee
# very common
python -m auto_nag.scripts.no_assignee
python -m auto_nag.scripts.no_assignee --production
# Bug closed with the leave open keyword
# very common
python -m auto_nag.scripts.leave_open
python -m auto_nag.scripts.leave_open --production
# has a STR without flag has_str
# common
@ -23,76 +23,76 @@ python -m auto_nag.scripts.leave_open
# Closes crash bug without any crashes for the last 12 weeks
# pretty common
python -m auto_nag.scripts.no_crashes
python -m auto_nag.scripts.no_crashes --production
# List bug with the meta keyword but not [meta] in the title
# Pretty common
python -m auto_nag.scripts.meta_summary_missing
python -m auto_nag.scripts.meta_summary_missing --production
# List bug without the meta keyword with [meta] in the title (with autofix)
# Pretty common
python -m auto_nag.scripts.summary_meta_missing
python -m auto_nag.scripts.summary_meta_missing --production
# List reopened bugs with invalid nightly status flag
# Pretty common
python -m auto_nag.scripts.nightly_reopened
python -m auto_nag.scripts.nightly_reopened --production
# Bug closed with the stalled keyword
# Pretty rare
python -m auto_nag.scripts.stalled
python -m auto_nag.scripts.stalled --production
# Bugs with missing beta status
# Pretty rare
python -m auto_nag.scripts.missing_beta_status
python -m auto_nag.scripts.missing_beta_status --production
# Try to detect potential regressions using bugbug
python -m auto_nag.scripts.regression
python -m auto_nag.scripts.regression --production
# Bugs with STR and no regression-range
# Pretty rare
python -m auto_nag.scripts.has_str_no_range
python -m auto_nag.scripts.has_str_no_range --production
# Notify bugs tracked (+ or blocking)
# with P3, P4 or P5 priorities for the ongoing releases
# Pretty common
python -m auto_nag.scripts.mismatch_priority_tracking_esr
python -m auto_nag.scripts.mismatch_priority_tracking_release
python -m auto_nag.scripts.mismatch_priority_tracking_beta
python -m auto_nag.scripts.mismatch_priority_tracking_nightly
python -m auto_nag.scripts.mismatch_priority_tracking_esr --production
python -m auto_nag.scripts.mismatch_priority_tracking_release --production
python -m auto_nag.scripts.mismatch_priority_tracking_beta --production
python -m auto_nag.scripts.mismatch_priority_tracking_nightly --production
# Bug is tracked for a release but the bug severity is small
# pretty common
python -m auto_nag.scripts.tracked_bad_severity
python -m auto_nag.scripts.tracked_bad_severity --production
# Move info (signatures, product/component) from/to bugs & their dups
# Pretty common
python -m auto_nag.scripts.copy_duplicate_info
python -m auto_nag.scripts.copy_duplicate_info --production
# Enhancement or task with the "regression" keyword
python -m auto_nag.scripts.regression_but_type_enhancement_task
python -m auto_nag.scripts.regression_but_type_enhancement_task --production
# Move dupeme from whiteboard to keyword
# Pretty rare
python -m auto_nag.scripts.dupeme_whiteboard_keyword
python -m auto_nag.scripts.dupeme_whiteboard_keyword --production
# Remove dupeme keyword when the bug is closed
# Pretty rare
python -m auto_nag.scripts.closed_dupeme
python -m auto_nag.scripts.closed_dupeme --production
# Detect spam bugs using bugbug
python -m auto_nag.scripts.spambug
python -m auto_nag.scripts.spambug --production
# Suggest components for untriaged bugs (hourly, list only bugs on which we acted)
python -m auto_nag.scripts.component --frequency hourly
python -m auto_nag.scripts.component --frequency hourly --production
# MUST ALWAYS BE AFTER COMPONENTS (to reset the priority if mandatory)
# Reset the priority if the product::component changed after the priority has been set
python -m auto_nag.scripts.prod_comp_changed_with_priority
python -m auto_nag.scripts.prod_comp_changed_with_priority --production
# Update status flags for regressions based on their regressor
python -m auto_nag.scripts.regression_set_status_flags
python -m auto_nag.scripts.regression_set_status_flags --production
python -m auto_nag.scripts.needinfo_regression_author
python -m auto_nag.scripts.needinfo_regression_author --production
# Send a mail if the logs are not empty
# MUST ALWAYS BE THE LAST COMMAND