1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env sh
# Protect the release lines, for the projects that keep older lines: while a
# line is alive, release/* can be neither force-pushed nor deleted by a git
# client. Maintainers keep pushing, because a cherry-pick lands on a line by
# push. This step is optional — a project with no older lines never runs it —
# and when a line dies its tags pin the commits, so the operator removes the
# protection together with the last line. A protected wildcard exposes no
# update endpoint for its levels, so a rerun that must change them is
# delete-then-create.
project=""
# The forge CLI may pretty-print JSON; stripping whitespace makes every
# pattern below hold for the compact and the pretty form alike, and no
# value a pattern touches can carry whitespace of its own.
if ; then
current=""
levels=""
merge_levels=""
# Exactly one grant at maintainer level on each half: a push level of 0
# would block the cherry-pick-by-push path this protection exists to keep.
grants=""
merge_grants=""
if [ && | && [ && | ; then
else
fi
else
fi
| |
| |