99
143
self.acceptable_keys.append(pattern)
145
@deprecated_method(deprecated_in((2, 6, 0)))
101
146
def do_verifications(self, revisions, repository):
102
count = {SIGNATURE_VALID: 0,
103
SIGNATURE_KEY_MISSING: 0,
104
SIGNATURE_NOT_VALID: 0,
105
SIGNATURE_NOT_SIGNED: 0,
106
SIGNATURE_EXPIRED: 0}
108
all_verifiable = True
109
for rev_id in revisions:
110
verification_result, uid =\
111
repository.verify_revision_signature(rev_id,self)
112
result.append([rev_id, verification_result, uid])
113
count[verification_result] += 1
114
if verification_result != SIGNATURE_VALID:
115
all_verifiable = False
116
return (count, result, all_verifiable)
147
return bulk_verify_signatures(repository, revisions, self)
149
@deprecated_method(deprecated_in((2, 6, 0)))
118
150
def valid_commits_message(self, count):
119
return gettext(u"{0} commits with valid signatures").format(
120
count[SIGNATURE_VALID])
151
return valid_commits_message(count)
153
@deprecated_method(deprecated_in((2, 6, 0)))
122
154
def unknown_key_message(self, count):
123
return ngettext(u"{0} commit with unknown key",
124
u"{0} commits with unknown keys",
125
count[SIGNATURE_KEY_MISSING]).format(
126
count[SIGNATURE_KEY_MISSING])
155
return unknown_key_message(count)
157
@deprecated_method(deprecated_in((2, 6, 0)))
128
158
def commit_not_valid_message(self, count):
129
return ngettext(u"{0} commit not valid",
130
u"{0} commits not valid",
131
count[SIGNATURE_NOT_VALID]).format(
132
count[SIGNATURE_NOT_VALID])
159
return commit_not_valid_message(count)
161
@deprecated_method(deprecated_in((2, 6, 0)))
134
162
def commit_not_signed_message(self, count):
135
return ngettext(u"{0} commit not signed",
136
u"{0} commits not signed",
137
count[SIGNATURE_NOT_SIGNED]).format(
138
count[SIGNATURE_NOT_SIGNED])
163
return commit_not_signed_message(count)
165
@deprecated_method(deprecated_in((2, 6, 0)))
140
166
def expired_commit_message(self, count):
141
return ngettext(u"{0} commit with key now expired",
142
u"{0} commits with key now expired",
143
count[SIGNATURE_EXPIRED]).format(
144
count[SIGNATURE_EXPIRED])
167
return expired_commit_message(count)
147
170
def _set_gpg_tty():
343
366
"No GnuPG key results for pattern: {0}"
344
367
).format(pattern))
369
@deprecated_method(deprecated_in((2, 6, 0)))
346
370
def do_verifications(self, revisions, repository,
347
371
process_events_callback=None):
348
372
"""do verifications on a set of revisions
350
374
:param revisions: list of revision ids to verify
351
375
:param repository: repository object
352
376
:param process_events_callback: method to call for GUI frontends that
353
want to keep their UI refreshed
377
want to keep their UI refreshed
355
379
:return: count dictionary of results of each type,
356
380
result list for each revision,
357
381
boolean True if all results are verified successfully
359
count = {SIGNATURE_VALID: 0,
360
SIGNATURE_KEY_MISSING: 0,
361
SIGNATURE_NOT_VALID: 0,
362
SIGNATURE_NOT_SIGNED: 0,
363
SIGNATURE_EXPIRED: 0}
365
all_verifiable = True
366
for rev_id in revisions:
367
verification_result, uid =\
368
repository.verify_revision_signature(rev_id, self)
369
result.append([rev_id, verification_result, uid])
370
count[verification_result] += 1
371
if verification_result != SIGNATURE_VALID:
372
all_verifiable = False
373
if process_events_callback is not None:
374
process_events_callback()
375
return (count, result, all_verifiable)
383
return bulk_verify_signatures(repository, revisions, self,
384
process_events_callback)
386
@deprecated_method(deprecated_in((2, 6, 0)))
377
387
def verbose_valid_message(self, result):
378
388
"""takes a verify result and returns list of signed commits strings"""
380
for rev_id, validity, uid in result:
381
if validity == SIGNATURE_VALID:
382
signers.setdefault(uid, 0)
385
for uid, number in signers.items():
386
result.append( ngettext(u"{0} signed {1} commit",
387
u"{0} signed {1} commits",
388
number).format(uid, number) )
389
return verbose_valid_message(result)
391
@deprecated_method(deprecated_in((2, 6, 0)))
392
392
def verbose_not_valid_message(self, result, repo):
393
393
"""takes a verify result and returns list of not valid commit info"""
395
for rev_id, validity, empty in result:
396
if validity == SIGNATURE_NOT_VALID:
397
revision = repo.get_revision(rev_id)
398
authors = ', '.join(revision.get_apparent_authors())
399
signers.setdefault(authors, 0)
400
signers[authors] += 1
402
for authors, number in signers.items():
403
result.append( ngettext(u"{0} commit by author {1}",
404
u"{0} commits by author {1}",
405
number).format(number, authors) )
394
return verbose_not_valid_message(result, repo)
396
@deprecated_method(deprecated_in((2, 6, 0)))
408
397
def verbose_not_signed_message(self, result, repo):
409
398
"""takes a verify result and returns list of not signed commit info"""
411
for rev_id, validity, empty in result:
412
if validity == SIGNATURE_NOT_SIGNED:
413
revision = repo.get_revision(rev_id)
414
authors = ', '.join(revision.get_apparent_authors())
415
signers.setdefault(authors, 0)
416
signers[authors] += 1
418
for authors, number in signers.items():
419
result.append( ngettext(u"{0} commit by author {1}",
420
u"{0} commits by author {1}",
421
number).format(number, authors) )
399
return verbose_not_valid_message(result, repo)
401
@deprecated_method(deprecated_in((2, 6, 0)))
424
402
def verbose_missing_key_message(self, result):
425
403
"""takes a verify result and returns list of missing key info"""
427
for rev_id, validity, fingerprint in result:
428
if validity == SIGNATURE_KEY_MISSING:
429
signers.setdefault(fingerprint, 0)
430
signers[fingerprint] += 1
432
for fingerprint, number in signers.items():
433
result.append( ngettext(u"Unknown key {0} signed {1} commit",
434
u"Unknown key {0} signed {1} commits",
435
number).format(fingerprint, number) )
404
return verbose_missing_key_message(result)
406
@deprecated_method(deprecated_in((2, 6, 0)))
438
407
def verbose_expired_key_message(self, result, repo):
439
408
"""takes a verify result and returns list of expired key info"""
441
fingerprint_to_authors = {}
442
for rev_id, validity, fingerprint in result:
443
if validity == SIGNATURE_EXPIRED:
444
revision = repo.get_revision(rev_id)
445
authors = ', '.join(revision.get_apparent_authors())
446
signers.setdefault(fingerprint, 0)
447
signers[fingerprint] += 1
448
fingerprint_to_authors[fingerprint] = authors
450
for fingerprint, number in signers.items():
452
ngettext(u"{0} commit by author {1} with key {2} now expired",
453
u"{0} commits by author {1} with key {2} now expired",
455
number, fingerprint_to_authors[fingerprint], fingerprint) )
409
return verbose_expired_key_message(result, repo)
411
@deprecated_method(deprecated_in((2, 6, 0)))
458
412
def valid_commits_message(self, count):
459
413
"""returns message for number of commits"""
460
return gettext(u"{0} commits with valid signatures").format(
461
count[SIGNATURE_VALID])
414
return valid_commits_message(count)
416
@deprecated_method(deprecated_in((2, 6, 0)))
463
417
def unknown_key_message(self, count):
464
418
"""returns message for number of commits"""
465
return ngettext(u"{0} commit with unknown key",
466
u"{0} commits with unknown keys",
467
count[SIGNATURE_KEY_MISSING]).format(
468
count[SIGNATURE_KEY_MISSING])
419
return unknown_key_message(count)
421
@deprecated_method(deprecated_in((2, 6, 0)))
470
422
def commit_not_valid_message(self, count):
471
423
"""returns message for number of commits"""
472
return ngettext(u"{0} commit not valid",
473
u"{0} commits not valid",
474
count[SIGNATURE_NOT_VALID]).format(
475
count[SIGNATURE_NOT_VALID])
424
return commit_not_valid_message(count)
426
@deprecated_method(deprecated_in((2, 6, 0)))
477
427
def commit_not_signed_message(self, count):
478
428
"""returns message for number of commits"""
479
return ngettext(u"{0} commit not signed",
480
u"{0} commits not signed",
481
count[SIGNATURE_NOT_SIGNED]).format(
482
count[SIGNATURE_NOT_SIGNED])
429
return commit_not_signed_message(count)
431
@deprecated_method(deprecated_in((2, 6, 0)))
484
432
def expired_commit_message(self, count):
485
433
"""returns message for number of commits"""
486
return ngettext(u"{0} commit with key now expired",
487
u"{0} commits with key now expired",
488
count[SIGNATURE_EXPIRED]).format(
489
count[SIGNATURE_EXPIRED])
434
return expired_commit_message(count)
437
def valid_commits_message(count):
438
"""returns message for number of commits"""
439
return gettext(u"{0} commits with valid signatures").format(
440
count[SIGNATURE_VALID])
443
def unknown_key_message(count):
444
"""returns message for number of commits"""
445
return ngettext(u"{0} commit with unknown key",
446
u"{0} commits with unknown keys",
447
count[SIGNATURE_KEY_MISSING]).format(
448
count[SIGNATURE_KEY_MISSING])
451
def commit_not_valid_message(count):
452
"""returns message for number of commits"""
453
return ngettext(u"{0} commit not valid",
454
u"{0} commits not valid",
455
count[SIGNATURE_NOT_VALID]).format(
456
count[SIGNATURE_NOT_VALID])
459
def commit_not_signed_message(count):
460
"""returns message for number of commits"""
461
return ngettext(u"{0} commit not signed",
462
u"{0} commits not signed",
463
count[SIGNATURE_NOT_SIGNED]).format(
464
count[SIGNATURE_NOT_SIGNED])
467
def expired_commit_message(count):
468
"""returns message for number of commits"""
469
return ngettext(u"{0} commit with key now expired",
470
u"{0} commits with key now expired",
471
count[SIGNATURE_EXPIRED]).format(
472
count[SIGNATURE_EXPIRED])
475
def verbose_expired_key_message(result, repo):
476
"""takes a verify result and returns list of expired key info"""
478
fingerprint_to_authors = {}
479
for rev_id, validity, fingerprint in result:
480
if validity == SIGNATURE_EXPIRED:
481
revision = repo.get_revision(rev_id)
482
authors = ', '.join(revision.get_apparent_authors())
483
signers.setdefault(fingerprint, 0)
484
signers[fingerprint] += 1
485
fingerprint_to_authors[fingerprint] = authors
487
for fingerprint, number in signers.items():
489
ngettext(u"{0} commit by author {1} with key {2} now expired",
490
u"{0} commits by author {1} with key {2} now expired",
492
number, fingerprint_to_authors[fingerprint], fingerprint))
496
def verbose_valid_message(result):
497
"""takes a verify result and returns list of signed commits strings"""
499
for rev_id, validity, uid in result:
500
if validity == SIGNATURE_VALID:
501
signers.setdefault(uid, 0)
504
for uid, number in signers.items():
505
result.append(ngettext(u"{0} signed {1} commit",
506
u"{0} signed {1} commits",
507
number).format(uid, number))
511
def verbose_not_valid_message(result, repo):
512
"""takes a verify result and returns list of not valid commit info"""
514
for rev_id, validity, empty in result:
515
if validity == SIGNATURE_NOT_VALID:
516
revision = repo.get_revision(rev_id)
517
authors = ', '.join(revision.get_apparent_authors())
518
signers.setdefault(authors, 0)
519
signers[authors] += 1
521
for authors, number in signers.items():
522
result.append(ngettext(u"{0} commit by author {1}",
523
u"{0} commits by author {1}",
524
number).format(number, authors))
528
def verbose_not_signed_message(result, repo):
529
"""takes a verify result and returns list of not signed commit info"""
531
for rev_id, validity, empty in result:
532
if validity == SIGNATURE_NOT_SIGNED:
533
revision = repo.get_revision(rev_id)
534
authors = ', '.join(revision.get_apparent_authors())
535
signers.setdefault(authors, 0)
536
signers[authors] += 1
538
for authors, number in signers.items():
539
result.append(ngettext(u"{0} commit by author {1}",
540
u"{0} commits by author {1}",
541
number).format(number, authors))
545
def verbose_missing_key_message(result):
546
"""takes a verify result and returns list of missing key info"""
548
for rev_id, validity, fingerprint in result:
549
if validity == SIGNATURE_KEY_MISSING:
550
signers.setdefault(fingerprint, 0)
551
signers[fingerprint] += 1
553
for fingerprint, number in signers.items():
554
result.append(ngettext(u"Unknown key {0} signed {1} commit",
555
u"Unknown key {0} signed {1} commits",
556
number).format(fingerprint, number))