aboutsummaryrefslogtreecommitdiffstats
path: root/english
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <pochu@debian.org>2020-09-08 18:27:37 +0200
committerEmilio Pozuelo Monfort <pochu@debian.org>2020-09-08 18:27:37 +0200
commit4bbcc4e7f6dca79b837456936559a1e53ad4fcf5 (patch)
treefa69d0cc6333221b662e3b2aa5f94d6c80d4eac8 /english
parenteb19a2f6e4dabdc2aff7908acc362a2236e68c79 (diff)
find-missing-advisories: readd author information
But hide it under a --author switch.
Diffstat (limited to 'english')
-rwxr-xr-xenglish/security/find-missing-advisories23
1 files changed, 20 insertions, 3 deletions
diff --git a/english/security/find-missing-advisories b/english/security/find-missing-advisories
index 318ffa1b0e7..0f060556561 100755
--- a/english/security/find-missing-advisories
+++ b/english/security/find-missing-advisories
@@ -55,6 +55,8 @@ def main():
help='show debug information')
parser.add_argument('--mode', default='DSA', choices=('DSA', 'DLA'),
help='which sort of advisory to check (default: %(default)s)') # noqa: E501
+ parser.add_argument('--author', action='store_true',
+ help='print who reserved the advisory, requires --tracker')
args = parser.parse_args()
if not args.directory:
@@ -72,6 +74,18 @@ def main():
for adv in parse_advisories(response.iter_lines(decode_unicode=True)):
check_advisory(args.mode, args.directory, **adv)
else:
+ if args.author:
+ try:
+ import git
+
+ repo = git.Repo(args.tracker)
+ for commit, lines in repo.blame('HEAD', 'data/%s/list' % args.mode):
+ for adv in parse_advisories(lines):
+ check_advisory(args.mode, args.directory, **adv, author=commit.author)
+ return
+ except ImportError:
+ logging.error('git module not found, will not report author information')
+
with open(os.path.join(args.tracker,'data',args.mode,'list')) as text:
for adv in parse_advisories(text):
check_advisory(args.mode, args.directory, **adv)
@@ -88,7 +102,7 @@ def parse_advisories(stream):
logging.warning('malformed line: "%s"', line)
-def check_advisory(mode, directory, year, date, number, errata, package):
+def check_advisory(mode, directory, year, date, number, errata, package, author=None):
if errata is None:
errata = '1'
@@ -109,8 +123,11 @@ def check_advisory(mode, directory, year, date, number, errata, package):
logging.debug('both data and wml files found, without -1')
found = True
if not found:
- logging.error('.data or .wml file missing for %s %s-%s (%s) (%s)',
- mode, number, errata, date, package,
+ author_info = ""
+ if author:
+ author_info = " (reserved by %s)" % (author)
+ logging.error('.data or .wml file missing for %s %s-%s (%s) (%s)%s',
+ mode, number, errata, date, package, author_info
)

© 2014-2024 Faster IT GmbH | imprint | privacy policy