/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/commit_signature_commands.py

  • Committer: Jelmer Vernooij
  • Date: 2019-06-02 02:35:46 UTC
  • mfrom: (7309 work)
  • mto: This revision was merged to the branch mainline in revision 7319.
  • Revision ID: jelmer@jelmer.uk-20190602023546-lqco868tnv26d8ow
merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""Command which looks for unsigned commits by the current user, and signs them.
18
 
"""
 
17
"""Command that signs unsigned commits by the current user. """
19
18
 
20
19
from __future__ import absolute_import
21
20
 
23
22
    controldir,
24
23
    errors,
25
24
    gpg,
 
25
    repository as _mod_repository,
26
26
    revision as _mod_revision,
27
27
    )
28
28
from .commands import Command
44
44
    # repository
45
45
 
46
46
    takes_options = [
47
 
            Option('dry-run',
48
 
                   help='Don\'t actually sign anything, just print'
49
 
                        ' the revisions that would be signed.'),
50
 
            ]
 
47
        Option('dry-run',
 
48
               help='Don\'t actually sign anything, just print'
 
49
               ' the revisions that would be signed.'),
 
50
        ]
51
51
    takes_args = ['location?', 'committer?']
52
52
 
53
53
    def run(self, location=None, committer=None, dry_run=False):
67
67
        count = 0
68
68
        with repo.lock_write():
69
69
            graph = repo.get_graph()
70
 
            repo.start_write_group()
71
 
            try:
 
70
            with _mod_repository.WriteGroup(repo):
72
71
                for rev_id, parents in graph.iter_ancestry(
73
72
                        [branch.last_revision()]):
74
73
                    if _mod_revision.is_null(rev_id):
87
86
                    count += 1
88
87
                    if not dry_run:
89
88
                        repo.sign_revision(rev_id, gpg_strategy)
90
 
            except:
91
 
                repo.abort_write_group()
92
 
                raise
93
 
            else:
94
 
                repo.commit_write_group()
95
89
        self.outf.write(
96
 
            ngettext('Signed %d revision.\n', 'Signed %d revisions.\n', count) %
97
 
            count)
 
90
            ngettext('Signed %d revision.\n', 'Signed %d revisions.\n',
 
91
                     count) % count)
98
92
 
99
93
 
100
94
class cmd_verify_signatures(Command):
104
98
    """
105
99
 
106
100
    takes_options = [
107
 
            Option('acceptable-keys',
108
 
                   help='Comma separated list of GPG key patterns which are'
109
 
                        ' acceptable for verification.',
110
 
                   short_name='k',
111
 
                   type=text_type,),
112
 
            'revision',
113
 
            'verbose',
114
 
          ]
 
101
        Option('acceptable-keys',
 
102
               help='Comma separated list of GPG key patterns which are'
 
103
               ' acceptable for verification.',
 
104
               short_name='k',
 
105
               type=text_type,),
 
106
        'revision',
 
107
        'verbose',
 
108
        ]
115
109
    takes_args = ['location?']
116
110
 
117
111
    def run(self, acceptable_keys=None, revision=None, verbose=None,
118
 
                                                            location=u'.'):
 
112
            location=u'.'):
119
113
        bzrdir = controldir.ControlDir.open_containing(location)[0]
120
114
        branch = bzrdir.open_branch()
121
115
        repo = branch.repository
126
120
 
127
121
        def write(string):
128
122
            self.outf.write(string + "\n")
 
123
 
129
124
        def write_verbose(string):
130
125
            self.outf.write("  " + string + "\n")
131
126
 
132
127
        self.add_cleanup(repo.lock_read().unlock)
133
 
        #get our list of revisions
 
128
        # get our list of revisions
134
129
        revisions = []
135
130
        if revision is not None:
136
131
            if len(revision) == 1:
142
137
                if to_revid is None:
143
138
                    to_revno = branch.revno()
144
139
                if from_revno is None or to_revno is None:
145
 
                    raise errors.BzrCommandError(gettext(
146
 
                    'Cannot verify a range of non-revision-history revisions'))
 
140
                    raise errors.BzrCommandError(
 
141
                        gettext('Cannot verify a range of non-revision-history'
 
142
                                ' revisions'))
147
143
                for revno in range(from_revno, to_revno + 1):
148
144
                    revisions.append(branch.get_rev_id(revno))
149
145
        else:
150
 
            #all revisions by default including merges
 
146
            # all revisions by default including merges
151
147
            graph = repo.get_graph()
152
148
            revisions = []
153
149
            for rev_id, parents in graph.iter_ancestry(
161
157
        count, result, all_verifiable = gpg.bulk_verify_signatures(
162
158
            repo, revisions, gpg_strategy)
163
159
        if all_verifiable:
164
 
               write(gettext("All commits signed with verifiable keys"))
165
 
               if verbose:
166
 
                   for message in gpg.verbose_valid_message(result):
167
 
                       write_verbose(message)
168
 
               return 0
 
160
            write(gettext("All commits signed with verifiable keys"))
 
161
            if verbose:
 
162
                for message in gpg.verbose_valid_message(result):
 
163
                    write_verbose(message)
 
164
            return 0
169
165
        else:
170
166
            write(gpg.valid_commits_message(count))
171
167
            if verbose:
172
 
               for message in gpg.verbose_valid_message(result):
173
 
                   write_verbose(message)
 
168
                for message in gpg.verbose_valid_message(result):
 
169
                    write_verbose(message)
174
170
            write(gpg.expired_commit_message(count))
175
171
            if verbose:
176
 
               for message in gpg.verbose_expired_key_message(result, repo):
177
 
                   write_verbose(message)
 
172
                for message in gpg.verbose_expired_key_message(result, repo):
 
173
                    write_verbose(message)
178
174
            write(gpg.unknown_key_message(count))
179
175
            if verbose:
180
176
                for message in gpg.verbose_missing_key_message(result):
182
178
            write(gpg.commit_not_valid_message(count))
183
179
            if verbose:
184
180
                for message in gpg.verbose_not_valid_message(result, repo):
185
 
                   write_verbose(message)
 
181
                    write_verbose(message)
186
182
            write(gpg.commit_not_signed_message(count))
187
183
            if verbose:
188
184
                for message in gpg.verbose_not_signed_message(result, repo):