• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jreleaser / jreleaser / #538

25 Sep 2025 05:26PM UTC coverage: 47.589% (-0.7%) from 48.299%
#538

push

github

web-flow
fix(deploy): Skip GPG key verification when signing.verify is false

Fixes #1981

1 of 25 new or added lines in 1 file covered. (4.0%)

381 existing lines in 33 files now uncovered.

25450 of 53479 relevant lines covered (47.59%)

0.48 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/core/jreleaser-engine/src/main/java/org/jreleaser/engine/context/ModelAutoConfigurer.java
1
/*
2
 * SPDX-License-Identifier: Apache-2.0
3
 *
4
 * Copyright 2020-2025 The JReleaser authors.
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 *     https://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
18
package org.jreleaser.engine.context;
19

20
import org.jreleaser.bundle.RB;
21
import org.jreleaser.logging.JReleaserLogger;
22
import org.jreleaser.model.Active;
23
import org.jreleaser.model.JReleaserException;
24
import org.jreleaser.model.JReleaserVersion;
25
import org.jreleaser.model.UpdateSection;
26
import org.jreleaser.model.api.JReleaserCommand;
27
import org.jreleaser.model.api.JReleaserContext.Mode;
28
import org.jreleaser.model.internal.JReleaserContext;
29
import org.jreleaser.model.internal.JReleaserModel;
30
import org.jreleaser.model.internal.common.Artifact;
31
import org.jreleaser.model.internal.release.BaseReleaser;
32
import org.jreleaser.model.internal.release.CodebergReleaser;
33
import org.jreleaser.model.internal.release.GithubReleaser;
34
import org.jreleaser.model.internal.release.GitlabReleaser;
35
import org.jreleaser.model.internal.util.Artifacts;
36
import org.jreleaser.model.spi.release.Repository;
37
import org.jreleaser.sdk.git.GitSdk;
38
import org.jreleaser.util.Env;
39

40
import java.io.IOException;
41
import java.nio.file.Path;
42
import java.util.ArrayList;
43
import java.util.LinkedHashSet;
44
import java.util.List;
45
import java.util.Set;
46

47
import static java.util.Objects.requireNonNull;
48
import static org.jreleaser.util.StringUtils.isNotBlank;
49

50
/**
51
 * @author Andres Almiray
52
 * @since 0.3.0
53
 */
54
public final class ModelAutoConfigurer {
55
    private static final String GLOB_PREFIX = "glob:";
56
    private static final String REGEX_PREFIX = "regex:";
57

58
    private final List<String> authors = new ArrayList<>();
1✔
59
    private final List<String> files = new ArrayList<>();
1✔
60
    private final List<String> globs = new ArrayList<>();
1✔
61
    private final List<String> selectedPlatforms = new ArrayList<>();
1✔
62
    private final List<String> rejectedPlatforms = new ArrayList<>();
1✔
63
    private final Set<UpdateSection> updateSections = new LinkedHashSet<>();
1✔
64
    private JReleaserLogger logger;
65
    private Path basedir;
66
    private Path settings;
67
    private Path outputDirectory;
68
    private Boolean yolo;
69
    private Boolean dryrun;
70
    private Boolean gitRootSearch;
71
    private Boolean strict;
72
    private String projectName;
73
    private String projectVersion;
74
    private String projectVersionPattern;
75
    private String projectSnapshotPattern;
76
    private String projectSnapshotLabel;
77
    private boolean projectSnapshotFullChangelog;
78
    private String projectCopyright;
79
    private String projectDescription;
80
    private String projectInceptionYear;
81
    private String projectStereotype;
82
    private String tagName;
83
    private String previousTagName;
84
    private String releaseName;
85
    private String milestoneName;
86
    private String branch;
87
    private Boolean prerelease;
88
    private String prereleasePattern;
89
    private Boolean draft;
90
    private boolean overwrite;
91
    private boolean update;
92
    private boolean skipTag;
93
    private boolean skipRelease;
94
    private boolean skipChecksums;
95
    private String changelog;
96
    private boolean changelogFormatted;
97
    private String username;
98
    private String commitAuthorName;
99
    private String commitAuthorEmail;
100
    private boolean signing;
101
    private boolean armored;
102

103
    private ModelAutoConfigurer() {
1✔
104
        // noop
105
    }
1✔
106

107
    public ModelAutoConfigurer logger(JReleaserLogger logger) {
108
        this.logger = logger;
1✔
109
        return this;
1✔
110
    }
111

112
    public ModelAutoConfigurer basedir(Path basedir) {
113
        this.basedir = basedir;
1✔
114
        return this;
1✔
115
    }
116

117
    public ModelAutoConfigurer settings(Path settings) {
UNCOV
118
        this.settings = settings;
×
UNCOV
119
        return this;
×
120
    }
121

122

123
    public ModelAutoConfigurer outputDirectory(Path outputDirectory) {
124
        this.outputDirectory = outputDirectory;
1✔
125
        return this;
1✔
126
    }
127

128
    public ModelAutoConfigurer yolo(Boolean yolo) {
129
        this.yolo = yolo;
1✔
130
        return this;
1✔
131
    }
132

133
    public ModelAutoConfigurer dryrun(Boolean dryrun) {
134
        this.dryrun = dryrun;
1✔
135
        return this;
1✔
136
    }
137

138
    public ModelAutoConfigurer gitRootSearch(Boolean gitRootSearch) {
139
        this.gitRootSearch = gitRootSearch;
1✔
140
        return this;
1✔
141
    }
142

143
    public ModelAutoConfigurer strict(Boolean strict) {
144
        this.strict = strict;
1✔
145
        return this;
1✔
146
    }
147

148
    public ModelAutoConfigurer projectName(String projectName) {
149
        this.projectName = projectName;
1✔
150
        return this;
1✔
151
    }
152

153
    public ModelAutoConfigurer projectVersion(String projectVersion) {
154
        this.projectVersion = projectVersion;
1✔
155
        return this;
1✔
156
    }
157

158
    public ModelAutoConfigurer projectVersionPattern(String projectVersionPattern) {
159
        this.projectVersionPattern = projectVersionPattern;
1✔
160
        return this;
1✔
161
    }
162

163
    public ModelAutoConfigurer projectSnapshotPattern(String projectSnapshotPattern) {
164
        this.projectSnapshotPattern = projectSnapshotPattern;
1✔
165
        return this;
1✔
166
    }
167

168
    public ModelAutoConfigurer projectSnapshotLabel(String projectSnapshotLabel) {
169
        this.projectSnapshotLabel = projectSnapshotLabel;
1✔
170
        return this;
1✔
171
    }
172

173
    public ModelAutoConfigurer projectSnapshotFullChangelog(boolean projectSnapshotFullChangelog) {
174
        this.projectSnapshotFullChangelog = projectSnapshotFullChangelog;
1✔
175
        return this;
1✔
176
    }
177

178
    public ModelAutoConfigurer projectCopyright(String projectCopyright) {
179
        this.projectCopyright = projectCopyright;
1✔
180
        return this;
1✔
181
    }
182

183
    public ModelAutoConfigurer projectDescription(String projectDescription) {
184
        this.projectDescription = projectDescription;
1✔
185
        return this;
1✔
186
    }
187

188
    public ModelAutoConfigurer projectInceptionYear(String projectInceptionYear) {
189
        this.projectInceptionYear = projectInceptionYear;
1✔
190
        return this;
1✔
191
    }
192

193
    public ModelAutoConfigurer projectStereotype(String projectStereotype) {
194
        this.projectStereotype = projectStereotype;
1✔
195
        return this;
1✔
196
    }
197

198
    public ModelAutoConfigurer tagName(String tagName) {
199
        this.tagName = tagName;
1✔
200
        return this;
1✔
201
    }
202

203
    public ModelAutoConfigurer previousTagName(String previousTagName) {
204
        this.previousTagName = previousTagName;
1✔
205
        return this;
1✔
206
    }
207

208
    public ModelAutoConfigurer branch(String branch) {
209
        this.branch = branch;
1✔
210
        return this;
1✔
211
    }
212

213
    public ModelAutoConfigurer releaseName(String releaseName) {
214
        this.releaseName = releaseName;
1✔
215
        return this;
1✔
216
    }
217

218
    public ModelAutoConfigurer milestoneName(String milestoneName) {
219
        this.milestoneName = milestoneName;
1✔
220
        return this;
1✔
221
    }
222

223
    public ModelAutoConfigurer prerelease(Boolean prerelease) {
224
        this.prerelease = prerelease;
1✔
225
        return this;
1✔
226
    }
227

228
    public ModelAutoConfigurer prereleasePattern(String prereleasePattern) {
229
        this.prereleasePattern = prereleasePattern;
1✔
230
        return this;
1✔
231
    }
232

233
    public ModelAutoConfigurer draft(Boolean draft) {
234
        this.draft = draft;
1✔
235
        return this;
1✔
236
    }
237

238
    public ModelAutoConfigurer overwrite(boolean overwrite) {
239
        this.overwrite = overwrite;
1✔
240
        return this;
1✔
241
    }
242

243
    public ModelAutoConfigurer update(boolean update) {
244
        this.update = update;
1✔
245
        return this;
1✔
246
    }
247

248
    public ModelAutoConfigurer updateSections(Set<UpdateSection> updateSections) {
249
        this.updateSections.clear();
1✔
250
        if (null != updateSections && !updateSections.isEmpty()) {
1✔
251
            updateSections.forEach(this::updateSection);
×
252
        }
253
        return this;
1✔
254
    }
255

256
    public ModelAutoConfigurer updateSection(UpdateSection updateSection) {
257
        if (null != updateSection) {
×
258
            this.updateSections.add(updateSection);
×
259
        }
260
        return this;
×
261
    }
262

263
    public ModelAutoConfigurer skipTag(boolean skipTag) {
264
        this.skipTag = skipTag;
1✔
265
        return this;
1✔
266
    }
267

268
    public ModelAutoConfigurer skipRelease(boolean skipRelease) {
269
        this.skipRelease = skipRelease;
1✔
270
        return this;
1✔
271
    }
272

273
    public ModelAutoConfigurer skipChecksums(boolean skipChecksums) {
274
        this.skipChecksums = skipChecksums;
1✔
275
        return this;
1✔
276
    }
277

278
    public ModelAutoConfigurer changelog(String changelog) {
279
        this.changelog = changelog;
1✔
280
        return this;
1✔
281
    }
282

283
    public ModelAutoConfigurer changelogFormatted(boolean changelogFormatted) {
284
        this.changelogFormatted = changelogFormatted;
1✔
285
        return this;
1✔
286
    }
287

288
    public ModelAutoConfigurer username(String username) {
289
        this.username = username;
1✔
290
        return this;
1✔
291
    }
292

293
    public ModelAutoConfigurer commitAuthorName(String commitAuthorName) {
294
        this.commitAuthorName = commitAuthorName;
1✔
295
        return this;
1✔
296
    }
297

298
    public ModelAutoConfigurer commitAuthorEmail(String commitAuthorEmail) {
299
        this.commitAuthorEmail = commitAuthorEmail;
1✔
300
        return this;
1✔
301
    }
302

303
    public ModelAutoConfigurer signing(boolean signing) {
304
        this.signing = signing;
1✔
305
        return this;
1✔
306
    }
307

308
    public ModelAutoConfigurer armored(boolean armored) {
309
        this.armored = armored;
1✔
310
        return this;
1✔
311
    }
312

313
    public ModelAutoConfigurer authors(List<String> authors) {
314
        this.authors.clear();
1✔
315
        if (null != authors && !authors.isEmpty()) {
1✔
316
            authors.forEach(this::file);
×
317
        }
318
        return this;
1✔
319
    }
320

321
    public ModelAutoConfigurer author(String author) {
322
        if (isNotBlank(author)) {
×
323
            this.authors.add(author.trim());
×
324
        }
325
        return this;
×
326
    }
327

328
    public ModelAutoConfigurer files(List<String> files) {
329
        this.files.clear();
1✔
330
        if (null != files && !files.isEmpty()) {
1✔
331
            files.forEach(this::file);
×
332
        }
333
        return this;
1✔
334
    }
335

336
    public ModelAutoConfigurer file(String file) {
337
        if (isNotBlank(file)) {
×
338
            this.files.add(file.trim());
×
339
        }
340
        return this;
×
341
    }
342

343
    public ModelAutoConfigurer globs(List<String> globs) {
344
        this.globs.clear();
1✔
345
        if (null != globs && !globs.isEmpty()) {
1✔
346
            globs.forEach(this::glob);
×
347
        }
348
        return this;
1✔
349
    }
350

351
    public ModelAutoConfigurer glob(String glob) {
352
        if (isNotBlank(glob)) {
×
353
            if (glob.startsWith(GLOB_PREFIX) || glob.startsWith(REGEX_PREFIX)) {
×
354
                this.globs.add(glob.trim());
×
355
            } else {
356
                this.globs.add(GLOB_PREFIX + glob.trim());
×
357
            }
358
        }
359
        return this;
×
360
    }
361

362
    public ModelAutoConfigurer selectedPlatforms(List<String> platforms) {
363
        this.selectedPlatforms.clear();
1✔
364
        if (null != platforms && !platforms.isEmpty()) {
1✔
365
            platforms.forEach(this::selectedPlatform);
×
366
        }
367
        return this;
1✔
368
    }
369

370
    public ModelAutoConfigurer selectedPlatform(String platform) {
371
        if (isNotBlank(platform)) {
×
372
            this.selectedPlatforms.add(platform.trim());
×
373
        }
374
        return this;
×
375
    }
376

377
    public ModelAutoConfigurer rejectedPlatforms(List<String> platforms) {
378
        this.rejectedPlatforms.clear();
1✔
379
        if (null != platforms && !platforms.isEmpty()) {
1✔
380
            platforms.forEach(this::rejectedPlatform);
×
381
        }
382
        return this;
1✔
383
    }
384

385
    public ModelAutoConfigurer rejectedPlatform(String platform) {
386
        if (isNotBlank(platform)) {
×
387
            this.rejectedPlatforms.add(platform.trim());
×
388
        }
389
        return this;
×
390
    }
391

392
    public JReleaserContext autoConfigure() {
393
        requireNonNull(logger, "Argument 'logger' ust not be null");
1✔
394
        requireNonNull(basedir, "Argument 'basedir' ust not be null");
1✔
395
        requireNonNull(outputDirectory, "Argument 'outputDirectory' ust not be null");
1✔
396

397
        logger.info("JReleaser {}", JReleaserVersion.getPlainVersion());
1✔
398
        JReleaserVersion.banner(logger.getTracer());
1✔
399
        logger.info(RB.$("context.configurer.auto-config.on"));
1✔
400
        logger.increaseIndent();
1✔
401
        logger.info(RB.$("context.configurer.basedir.set"), basedir.toAbsolutePath());
1✔
402
        dumpAutoConfig();
1✔
403
        logger.decreaseIndent();
1✔
404
        return createAutoConfiguredContext();
1✔
405
    }
406

407
    private JReleaserContext createAutoConfiguredContext() {
408
        return ContextCreator.create(
1✔
409
            logger,
410
            JReleaserContext.Configurer.CLI,
411
            Mode.FULL,
412
            JReleaserCommand.RELEASE,
413
            autoConfiguredModel(basedir),
1✔
414
            basedir,
415
            settings,
416
            outputDirectory,
417
            resolveBoolean(org.jreleaser.model.api.JReleaserContext.YOLO, yolo),
1✔
418
            resolveBoolean(org.jreleaser.model.api.JReleaserContext.DRY_RUN, dryrun),
1✔
419
            resolveBoolean(org.jreleaser.model.api.JReleaserContext.GIT_ROOT_SEARCH, gitRootSearch),
1✔
420
            resolveBoolean(org.jreleaser.model.api.JReleaserContext.STRICT, strict),
1✔
421
            selectedPlatforms,
422
            rejectedPlatforms);
423
    }
424

425
    private boolean resolveBoolean(String key, Boolean value) {
426
        if (null != value) return value;
1✔
427
        String resolvedValue = Env.resolve(key, "");
1✔
428
        return isNotBlank(resolvedValue) && Boolean.parseBoolean(resolvedValue);
1✔
429
    }
430

431
    private void dumpAutoConfig() {
432
        if (isNotBlank(projectName)) logger.info("- project.name: {}", projectName);
1✔
433
        if (isNotBlank(projectVersion)) logger.info("- project.version: {}", projectVersion);
1✔
434
        if (isNotBlank(projectVersionPattern)) logger.info("- project.version.pattern: {}", projectVersionPattern);
1✔
435
        if (isNotBlank(projectSnapshotPattern)) logger.info("- project.snapshot.pattern: {}", projectSnapshotPattern);
1✔
436
        if (isNotBlank(projectSnapshotLabel)) logger.info("- project.snapshot.label: {}", projectSnapshotLabel);
1✔
437
        if (projectSnapshotFullChangelog) logger.info("- project.snapshot.full.changelog: true");
1✔
438
        if (isNotBlank(projectDescription)) logger.info("- project.description: {}", projectDescription);
1✔
439
        if (isNotBlank(projectCopyright)) logger.info("- project.copyright: {}", projectCopyright);
1✔
440
        if (isNotBlank(projectInceptionYear)) logger.info("- project.inceptionYear: {}", projectInceptionYear);
1✔
441
        if (isNotBlank(projectStereotype)) logger.info("- project.stereotype: {}", projectStereotype);
1✔
442
        if (!authors.isEmpty()) {
1✔
443
            for (String author : authors) {
×
444
                logger.info("- author: {}", author);
×
445
            }
×
446
        }
447
        if (isNotBlank(username)) logger.info("- release.username: {}", username);
1✔
448
        if (isNotBlank(tagName)) logger.info("- release.tagName: {}", tagName);
1✔
449
        if (isNotBlank(previousTagName)) logger.info("- release.previousTagName: {}", previousTagName);
1✔
450
        if (isNotBlank(branch)) logger.info("- release.branch: {}", branch);
1✔
451
        if (isNotBlank(releaseName)) logger.info("- release.releaseName: {}", releaseName);
1✔
452
        if (isNotBlank(milestoneName)) logger.info("- release.milestone.name: {}", milestoneName);
1✔
453
        if (overwrite) logger.info("- release.overwrite: true");
1✔
454
        if (update) logger.info("- release.update: true");
1✔
455
        if (!updateSections.isEmpty()) logger.info("- release.updateSections: " + updateSections);
1✔
456
        if (skipTag) logger.info("- release.skipTag: true");
1✔
457
        if (skipRelease) logger.info("- release.skipRelease: true");
1✔
458
        if (skipChecksums) logger.info("- checksums.disabled: true");
1✔
459
        if (null != prerelease && prerelease) logger.info("- release.prerelease: true");
1✔
460
        if (isNotBlank(prereleasePattern)) logger.info("- release.prerelease.pattern: {}", prereleasePattern);
1✔
461
        if (null != draft && draft) logger.info("- release.draft: true");
1✔
462
        if (isNotBlank(changelog)) logger.info(" - release.changelog: {}", changelog);
1✔
463
        if (changelogFormatted) logger.info("- release.changelog.formatted: true");
1✔
464
        if (isNotBlank(commitAuthorName)) logger.info("- release.commitAuthor.name: {}", commitAuthorName);
1✔
465
        if (isNotBlank(commitAuthorEmail)) logger.info("- release.commitAuthor.email: {}", commitAuthorEmail);
1✔
466
        if (signing) logger.info("- signing.enabled: true");
1✔
467
        if (armored) logger.info("- signing.armored: true");
1✔
468
        if (!files.isEmpty()) {
1✔
469
            for (String file : files) {
×
470
                logger.info("- file: {}", basedir.relativize(basedir.resolve(file)));
×
471
            }
×
472
        }
473
        if (!globs.isEmpty()) {
1✔
474
            for (String glob : globs) {
×
475
                logger.info("- glob: {}", glob);
×
476
            }
×
477
        }
478
        if (!selectedPlatforms.isEmpty()) {
1✔
479
            for (String platform : selectedPlatforms) {
×
480
                logger.info("- platform: {}", platform);
×
481
            }
×
482
        }
483
        if (!rejectedPlatforms.isEmpty()) {
1✔
484
            for (String platform : rejectedPlatforms) {
×
485
                logger.info("- !platform: {}", platform);
×
486
            }
×
487
        }
488
    }
1✔
489

490
    private JReleaserModel autoConfiguredModel(Path basedir) {
491
        JReleaserModel model = new JReleaserModel();
1✔
492
        model.getProject().setName(projectName);
1✔
493
        model.getProject().setDescription(projectDescription);
1✔
494
        model.getProject().setCopyright(projectCopyright);
1✔
495
        model.getProject().setStereotype(projectStereotype);
1✔
496
        model.getProject().setInceptionYear(projectInceptionYear);
1✔
497
        model.getProject().setAuthors(authors);
1✔
498
        model.getProject().setVersion(projectVersion);
1✔
499
        model.getProject().setVersionPattern(projectVersionPattern);
1✔
500
        model.getProject().getSnapshot().setPattern(projectSnapshotPattern);
1✔
501
        model.getProject().getSnapshot().setLabel(projectSnapshotLabel);
1✔
502
        model.getProject().getSnapshot().setFullChangelog(projectSnapshotFullChangelog);
1✔
503

504
        try {
505
            boolean grs = resolveBoolean(org.jreleaser.model.api.JReleaserContext.GIT_ROOT_SEARCH, gitRootSearch);
1✔
506
            Repository repository = GitSdk.of(basedir, grs).getRemote();
1✔
507
            BaseReleaser<?, ?> service = null;
1✔
508
            switch (repository.getKind()) {
1✔
509
                case GITHUB:
510
                    service = new GithubReleaser();
1✔
511
                    model.getRelease().setGithub((GithubReleaser) service);
1✔
512
                    service.getPrerelease().setEnabled(prerelease);
1✔
513
                    service.getPrerelease().setPattern(prereleasePattern);
1✔
514
                    ((GithubReleaser) service).setDraft(draft);
1✔
515
                    break;
1✔
516
                case GITLAB:
517
                    service = new GitlabReleaser();
×
518
                    model.getRelease().setGitlab((GitlabReleaser) service);
×
519
                    break;
×
520
                case CODEBERG:
521
                    service = new CodebergReleaser();
×
522
                    model.getRelease().setCodeberg((CodebergReleaser) service);
×
523
                    service.getPrerelease().setEnabled(prerelease);
×
524
                    service.getPrerelease().setPattern(prereleasePattern);
×
525
                    ((CodebergReleaser) service).setDraft(draft);
×
526
                    break;
×
527
                default:
528
                    throw new JReleaserException(RB.$("ERROR_context_configurer_unsupported_url", repository.getHttpUrl()));
×
529
            }
530

531
            service.setUsername(username);
1✔
532
            service.setTagName(tagName);
1✔
533
            service.setPreviousTagName(previousTagName);
1✔
534
            service.setReleaseName(releaseName);
1✔
535
            service.getMilestone().setName(milestoneName);
1✔
536
            service.setOverwrite(overwrite);
1✔
537
            service.getUpdate().setEnabled(update);
1✔
538
            if (!updateSections.isEmpty()) {
1✔
539
                if (!update) {
×
540
                    throw new JReleaserException(RB.$("ERROR_context_configurer_update_not_set"));
×
541
                }
542
                service.getUpdate().setSections(updateSections);
×
543
            }
544
            service.setSkipTag(skipTag);
1✔
545
            service.setSkipRelease(skipRelease);
1✔
546
            if (isNotBlank(branch)) service.setBranch(branch);
1✔
547
            if (isNotBlank(changelog)) service.getChangelog().setExternal(changelog);
1✔
548
            if (isNotBlank(commitAuthorName)) service.getCommitAuthor().setName(commitAuthorName);
1✔
549
            if (isNotBlank(commitAuthorEmail)) service.getCommitAuthor().setEmail(commitAuthorEmail);
1✔
550
            if (changelogFormatted) service.getChangelog().setFormatted(Active.ALWAYS);
1✔
551
        } catch (IOException e) {
×
552
            throw new JReleaserException(e.getMessage());
×
553
        }
1✔
554

555
        if (skipChecksums) {
1✔
556
            model.getChecksum().setArtifacts(false);
×
557
            model.getChecksum().setFiles(false);
×
558
            model.getSigning().setChecksums(false);
×
559
        }
560

561
        if (signing) {
1✔
562
            model.getSigning().setActive(Active.ALWAYS);
×
563
            model.getSigning().setArmored(armored);
×
564
        }
565

566
        if (!files.isEmpty()) {
1✔
567
            for (String file : files) {
×
568
                model.getFiles().addArtifact(Artifact.of(basedir.resolve(file)));
×
569
            }
×
570
        }
571

572
        if (!globs.isEmpty()) {
1✔
573
            model.getFiles().addArtifacts(Artifacts.resolveFiles(logger, basedir, globs));
×
574
        }
575

576
        return model;
1✔
577
    }
578

579
    public static ModelAutoConfigurer builder() {
580
        return new ModelAutoConfigurer();
1✔
581
    }
582
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc