Files
dotfiles/bin/retag-email
2026-01-30 21:42:47 +01:00

470 lines
13 KiB
Bash
Executable File

#!/usr/bin/env bash
set -x
set -e
#
# script to tag notmuch emails based on my preference
#
# inspired by https://forsooth.org/posts/email-in-spacemacs/index.html
#
#
# tags: important solaris oci osd
#
#
notmuch tag +sent -unread 'folder:/[Ss]ent.*/'
notmuch tag +me to:petr.nyc@oracle.com
# idea for logic
# sort by projects, don't unset new/read tag
# at the very bottom, unset the new/read tag based on if I'm interested in the latest
# status for the project / logs for the project and so on - good for stepping for someone
# General sorting rules not specific to projects
################################################################################
notmuch tag +important -- \
tag:new AND "
(
subject:/[Cc]omplete.*[Tt]raining/ OR
subject:/.*Reminder:?/ OR
from:elanor.cz OR
from:payroll_cz OR
from:instructor.cz OR
subject:Expense Report Approval OR
subject:/[Aa]ction.[Nn]eeded/ OR
from:permissions.oci.oraclecloud.com
)"
notmuch tag +general \
tag:new AND "(
subject:'Oracle Open Roles' OR
from:tania.c.cortez OR
from:info@eduagroup.cz OR
subject:'FYI: Expense Reimbursement'
)"
notmuch tag +calendar \
tag:new AND mimetype:text/calendar
# Solaris
################################################################################
# general solaris
notmuch tag +solaris +logs +mrspatmore -- \
tag:new AND "(
subject:/.*BugDB.*release.deployment/ OR
subject:import/sig_ci/mercurial/mrspatmore OR
(from:vcap_admin_ww_grp AND subject:/WARNING:|INFO:/)
)"
notmuch tag +solaris +logs \
tag:new AND 'subject:Next IDR ID is'
notmuch tag +solaris \
tag:new AND "(
from:deirdre.williams@oracle.com AND subject:'Sustaining Meeting'
)"
# phabricator
notmuch tag +phabricator +logs -me \
tag:new AND \
from:noreply@scapen-phabricator.us.oracle.com
notmuch tag +s11u3-sru +on \
tag:new AND "(
tag:phabricator AND
subject:/rONCLOSED|rONMAN|rONSRC/ and subject:/11.3/
)"
notmuch tag +s11u3-sru +userland \
tag:new AND "(
tag:phabricator AND
subject:/\[Diffusion\].*rUSERLAND.*11\.3/
)"
notmuch tag +s11u4-sru +userland \
tag:new AND "(
tag:phabricator AND
subject:/\[Diffusion\].*rUSERLAND.*11\.4/
)"
notmuch tag +mrspatmore \
tag:new AND "(
tag:phabricator AND \
subject:/\[Diffusion\].*rMRSPATMORE/
)"
notmuch tag +mrspatmore \
tag:new AND "(
tag:phabricator AND \
subject:/\[Diffusion\].*rREJENKINSLIB/
)"
notmuch tag +IPS \
tag:new AND "(
tag:phabricator AND \
( ( subject:/\[Differential\]/ and body:REPOSITORY NEAR/1 rPKG ) OR
( subject:/\[Diffusion\]/ and body:COMMITS NEAR rPKG )
)
)"
# akidr
notmuch tag +akidr +logs -unread \
tag:new AND "(
from:vcap_admin_ww_grp AND
subject:'Docker with ARU uploadcli has been automatically frozen'
)"
notmuch tag +akidr \
tag:new AND "(
to:'bot@artas' OR
from:'bot@artas' OR
to:'fishworks-gk_ww_grp@oracle.com' OR
subject:'PASS s11_4aksruidr' OR
subject:'Build started for AK IDR' OR
subject:'New AK IDR request for'
)"
notmuch tag +akidr +logs -unread \
tag:new AND "(
from:'vcap_admin_ww_grp@oracle.com' AND \
subject:'ARU Uploads has been frozen for' AND \
subject:'this is a reminder please review'
)"
notmuch tag +akidr +logs +important \
tag:new AND "(
(from:sig-devops_ww_grp OR from:adam.paul) AND \
subject:/8\.\8.*idr.*DC.*has.failed/
)"
# WebRTI
notmuch tag +webrti \
tag:new AND "(
body:Consolidation: AND
body:RTI: AND
subject:WebRTI:
)"
notmuch tag +important \
tag:new AND "(
tag:webrti AND
to:petr.nyc and
subject:/NEED.APPROVAL.*WebRTI/
)"
# BugDB
notmuch tag +bugdb \
tag:new AND "(
from:ociapp-notifications and subject:/ER|Bug/
)"
# ON
notmuch tag +on tag:new AND "(tag:webrti AND body:Consolidation: NEAR/1 on"
notmuch tag +s11u3-sru tag:new AND "(tag:webrti AND tag:on AND body:Gates: S11.SRU.Sustaining)"
notmuch tag +s11u3-sru tag:new AND "(subject:/Solaris.*11.3.*[Rr]eleased/)"
notmuch tag +s11u4-sru tag:new AND "(subject:/Solaris.*11.4.*[Rr]eleased/)"
notmuch tag +s11u4-sru +logs +on \
tag:new and 'from:/root@sig-on-sru11-3-[xs]01/'
notmuch tag +s11u4-sru tag:new AND "(
tag:webrti AND tag:on AND body:Gates: 11.4-SRU
)"
notmuch tag +on +pushlog \
tag:new AND \
subject:'/export.on-gate.*push/'
notmuch tag +on +trunk \
tag:new AND "(
to:gk@hubbins OR to:gatekeeper@hubbins OR to:hg@hubbins OR
from:gatekeeper@hubbins
)"
notmuch tag +important \
tag:new AND "(
tag:on and subject:error and (from:gatekeeper@hubbins or to:gatekeeper@hubbins)
)"
notmuch tag +important +s11u4-sru +on \
tag:new AND "(
from:sig-devops_ww_grp AND
subject:/INPUT.NEEDED.*11.4|s11u4_sust.*Ready.for/
)"
notmuch tag +trunk \
tag:new AND "(
tag:on AND tag:pushlog body:Branch: default
)"
notmuch tag +s11u3-sru tag:new AND "(
tag:on AND tag:pushlog body:Branch: s11u3-sru
)"
notmuch tag +on +trunk +logs \
tag:new AND \
'(to:gk-builds@hubbins.us.oracle.com OR to:gk-splice-builds@hubbins.us.oracle.com) AND body:"Build summary"'
notmuch tag +on +trunk +logs -unread \
tag:new AND "(
from:noaccess AND
subject:/boston|eleven|hopper|on-gate-test|severin|smalls|stumpy|zero/
)"
notmuch tag +on +trunk +jenkins tag:new AND to:gk-jenkins@hubbins.us.oracle.com
notmuch tag +on +trunk +logs \
tag:new AND "(
(to:gk@hubbins.us.oracle.com and subject:'zpool report for') OR
(to:on-parfait@hubbins and subject:'Parfait Differences')
)"
notmuch tag +on +s11u4-sru +logs +important \
tag:new AND "(
from:gk@hubbins.us.oracle.com AND
subject:'New SRU branch from trunk'
)"
notmuch tag +on +trunk +s11u4-sru +s11u3-sru +logs +important \
tag:new AND subject:on-repo-hooks
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND 'subject:/URGENT:.production.build-11.4.*/'
notmuch tag +on +pushlog \
tag:new AND to:hubbins AND 'subject:/.export\/on-gate.*push/'
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND subject:"fail" AND subject:"Solaris_11/11.4/ON" AND subject:"11.4"
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND subject:"fail" AND 'subject:/on-11u4-bld/'
notmuch tag +on +gkap +logs +s11u4-sru \
tag:new AND "(
from:s11autoport_grp@oracle.com AND
(subject:'periodic GKAP push analysis') or subject:'GK Backport testing has completed'
)"
notmuch tag +on +gkap +logs +s11u4-sru \
"tag:new AND tag:inbox AND (subject:GKAP or subject:GKAB)"
# notmuch tag +on +gkap +logs +s11u4-sru \
# tag:new AND from:rpe_sme_ww_grp@oracle.com AND subject:"/INTERIM.GK.Backport.report.for.GKAP_11.4.*/"
# notmuch tag +on +gkap +logs +s11u4-sru \
# "tag:new AND subject:/.*Build.*GKAB.*Completed/"
# notmuch tag +on +gkap +logs +s11u4-sru \
# "tag:new AND from:rpe_gk_backport_ww_grp AND (subject:pass or subject:successfull or subject:successful)"
notmuch tag +on +logs +s11u4-sru \
tag:new AND "(
subject:/on-gate.s11u4..*.packages.ready/ OR
subject:/pass:.*Solaris_11/11.4/ON/production.build-11.4.*/ OR
subject:/^pass.*11.4..*.11.4.*..on-11u4-bld-[xs]./
)"
notmuch tag +solaris +logs -unread \
tag:new AND 'subject:/\[\/var\/tmp\/repo_cache\/PKG\]/'
notmuch tag +on +important \
tag:new AND \
to:solaris_sru_gk_ww_grp AND \
subject:FAILED
# userland
notmuch tag +userland tag:new AND "subject:GATE OPEN" AND "from:solaris_sru_gk_ww_grp" AND body:userland
notmuch tag +userland tag:new AND tag:webrti AND "body:/Consolidation.*userland/"
notmuch tag +s11u4-sru tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*S11.4-SRU/"
notmuch tag +trunk tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*solaris-trunk/"
notmuch tag +userland tag:new AND to:userland-s11-sru-notify
notmuch tag +s11u3-sru \
tag:new AND \
tag:userland AND \
subject:'push to s11u3-sru'
notmuch tag +s11u4-sru \
tag:new AND \
tag:userland AND \
subject:'/.*push.to.s11u4_sust.*/'
# cluster
notmuch tag +cluster \
tag:new AND "(
tag:webrti AND (body:Consolidation: sc-geo or body:Consolidation: suncluster) OR
subject:'SC4.4 SRU Nightly' OR from:'SC Build Engineering'
)"
notmuch tag +important \
tag:new AND \
tag:cluster and 'subject:/[Ff]ail/'
# IPS
notmuch tag +IPS \
tag:new AND \
subject:'[Differential]' AND body:'rPKG Solaris Image Packaging System'
# RE
notmuch tag +RE \
tag:new AND "(
to:solaris-re_us_grp OR
to:ips_tracker_support_ww_grp OR
from:ips_tracker_support_ww_grp
)"
notmuch tag +s11u3-sru \
tag:new AND \
tag:re AND \
'subject:/Oracle.Solaris.11\.3/'
notmuch tag +RE +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/.*IDRs.*s11_4sru.*/'
notmuch tag +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/RTI.*withdrawal.notification/' AND \
body:'11.4'
notmuch tag +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/S11.4.*repo.ready.for.testing/'
notmuch tag +s11u3-sru \
tag:new AND \
tag:RE AND \
'subject:/.*IDRs.*s11_3sru.*/'
notmuch tag +cluster \
tag:new AND \
tag:re AND \
'(subject:/.*IDRs.*cluster.*/ OR subject:/SRU.Build.Package.Profile.successfully.created.for.solariscluster.*/)'
notmuch tag +akidr \
tag:new AND \
tag:RE AND \
'subject:/.*Tracker.FYI.*IDR.*state.change/'
notmuch tag +RE s11u4-sru \
tag:new AND \
subject:'[Differential]' AND body:'Repository rRETRUNK Release Engineering Trunk Gate'
notmuch tag +RE +logs -unread \
tag:new AND "(
from:noaccess AND
subject:/ipkg[1-9]/
)"
notmuch tag +solaris \
tag:new AND "(
tag:akidr OR
tag:bugdb OR
tag:cluster OR
tag:IPS OR
tag:on OR
tag:phabricator OR
tag:RE OR
tag:trunk OR
tag:userland OR
tag:webrti
)"
# end of Solaris
################################################################################
# OCI / OSD
################################################################################
# seatch term to include in each search
# commented out for debugging
# ST='tag:new'
ST="date:1/1/2026.."
notmuch tag +osd \
"$ST" AND "(
to:osd-devops_ww_grp@oracle.com OR \
subject:[gbu confluence]
)"
notmuch tag +osd +brownbag \
"$ST" AND 'subject:/[Bb]rown.[Bb]ag/'
notmuch tag +deployment-ticket "$ST" AND tag:osd AND subject:"New OSD deployment ticket:"
notmuch tag +ocean-incident "$ST" AND tag:osd AND subject:"[Ocean Incident]"
notmuch tag +alarm "$ST" AND tag:osd AND subject:'Alarm: '
notmuch tag +osd "$ST" AND subject:'InfraCloud JIRA'
notmuch tag +osd +sgd \
"$ST" AND subject:'SGD'
notmuch tag +oci +announcement \
"$ST" AND subject:'A PSA'
# PRs for approval
notmuch tag +osd +PRs \
"$ST" AND subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
body:'/Service Owner:.*Desktop as a Service/'
# PRs from other projects
notmuch tag +oci +CCAT-PRs \
"$ST" AND \
subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
body:'/Service Owner:Compute Cloud at Customer/'
# OCI production regions
notmuch tag +oci +osd +important +region-ga \
"$ST" AND \
"from:/OCI-REGION-BUILD.*/"
# ODAAS Deployments Calendar
notmuch tag +osd +calendar \
"$ST" AND \
"subject:/\[confluence\].*created.a.new|updated.a.*event.in.the.*OSD.RE.Deployments.*calendar/"
# ODAAS PRs
notmuch tag +osd +PRs\
"$ST" AND \
"subject:/ODAAS\/.*Pull.request.*:/"
notmuch tag +oci tag:new AND tag:osd
################################################################################
# I don't want these in my focused inbox
################################################################################
# passed logs for on trunk
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:logs AND subject:"pass"
# trunk RTIs,pushlog,jenkins logs
notmuch tag -inbox -unread tag:trunk and tag:webrti
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:pushlog
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:jenkins
# ON GKAP notifications
notmuch tag -inbox -unread tag:new AND tag:gkap AND tag:logs and not subject:failed
# osd ocean incidents, alarms
notmuch tag -inbox -unread tag:osd AND '(tag:ocean-incident or tag:alarm)'
# emails with subject:"REGION BUILD ALERT]" are important to watch
# ================================================================================
# the very last part of this - remove the new tag
notmuch tag -new tag:new