Working on shellcheck first. I personally like doing them as separate steps, but let me know what you think: https://gitlab.com/muttmua/mutt/-/merge_requests/103/commits It would not be difficult to run it in the same pipeline, but I think doing it in parallel like this has the advantage of running quickly, as well as making it easy to see which check(s) are failing, or to have different restrictions in branch protection (i.e., one check may be merged failing, while another may not).
I did my best to test the things I could. If anyone's an expert on shell portability, open to any suggestions / major concerns. I think that $() (vs. backticks) and "grep -E" should be POSIX compliant from what I've been able to dig up, but I know we have a conservative, and opinionated, audience here. /w