Wikimedia Product/Technical Program Management/Requesting silent phabricator batches

From mediawiki.org

Phabricator can batch-edit tasks, and can do so without sending notifications to those subscribed on the tasks. This is a guide for requesting that support from Technical Program Management.

(If you would rather execute the silencing yourself, here is a ticket example for requesting security access, and the homework required thereof: https://phabricator.wikimedia.org/T251349)

The best way to do this, assuming you have batch-editing privileges, is to prepare your batch-edit yourself via a Maniphest query, and pause when you see a screen like the following:

Then, contact your representative on the Tech-PgM team for assistance silencing the job. You can also request this via the #Phabricator project on phabricator.wikimedia.org.

Make sure to first read mw:Phabricator/Help#Batch_edits when silencing is (not) appropriate.

Once your job is confirmed as silent, you should see your confirmation screen change to something like the following:

Once you see that confirmation, you can proceed with your batch job and it will execute without notifications.

Note: if you have specific tasks that you want to query, you can do so via a hidden "IDs" field. This field will appear when the query URL is changed to include a modifier. For example: https://phabricator.wikimedia.org/maniphest/?ids=1,2,3,4#R will result in

Once this field is revealed, you can further manipulate it via the UI (you may also continue to use the URL instead). It accepts comma-separated numbers (so remove, for instance, the common "T" prefix from your task IDs; a spreadsheet software like Excel or Google Sheets is useful for this, as well as adding the commas).

Exporting tasks from a Phab column[edit]

For example, you want to clean up the "tech debt" column on your backlog, but you want to sift through it first to decide what to keep and what to close.

  • Go to the column you want to export and click on the "pencil" icon at the top, then select "View Tasks as Query". Once that's done, click the "Use Results" drop-down to select "Export Data" and select "Comma-Separated Values (.csv) as the format to download.
  • Open the file in a spreadsheet software; in this case, we'll assume you're using Google sheets. Delete or hide unnecessary columns.
  • Create a column for something like "Keep? Y/N" and have your team mark the tasks as appropriate. When complete, click the header of the Keep column and then filter.
    • Filter for everyone, and unclick Y, as this should then show you everything marked N and this will be the list of tasks to close.
  • You will then need a comma-separated list of IDs (the task numbers without the "T" in front).
    • Ctrl-shift down to select the Monogram column, then paste into a new tab.
    • To remove the Ts: use find and replace, find T, and replace with nothing.
    • To add commas: in the first cell of the next column, use the formula =A&"," then double-click on the corner to auto-fill the entire column. Then remove the formula on the last cell to take out the final comma.
    • To remove carriage returns: copy everything, paste special as values only into the next column. (This removes the formula.) Then select all, copy, and paste special as transposed into a new tab. This is your list.
  • Copy the list into the Phab form: https://phabricator.wikimedia.org/maniphest/?ids=1,2,3,4#R
    • Group by none, set the page size to higher than 100 if needed (e.g. if you are dealing with more than 100 tasks). These actions are not strictly necessary, but they will make the results easier to read.
  • Once you get the results, select all, then click bulk edit selected.
    • At the bottom of the screen, you can add actions; you'll want to set the status (probably to "declined") and you'll also likely want to use Comments to set a default message for all the tasks (e.g. "This task was closed as part of backlog upkeep. If you believe it was closed in error, please respond on the task.")
    • You should get an ID for the job.
  • Provide the job ID to your Tech-PgM rep so they can set the job as silenced.
    • Once they confirm, you can refresh the page which show now show that it will be silent. Run the job, and wait for it to complete.
  • Check the results afterwards. You're done!