-
Notifications
You must be signed in to change notification settings - Fork 14
/
.goreleaser.yaml
590 lines (498 loc) · 17.9 KB
/
.goreleaser.yaml
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
# The lines below are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/need to use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
version: 1
before:
hooks:
# You may remove this if you don't use go modules.
- go mod tidy
# you may remove this if you don't need go generate
# - go generate ./...
builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- windows
- darwin
ignore:
- goos: darwin
goarch: "386"
- goos: linux
goarch: "386"
- goos: windows
goarch: "386"
archives:
- format: tar.gz
# this name template makes the OS and Arch compatible with the results of `uname`.
name_template: >-
{{ .ProjectName }}_
{{- if eq .Os "darwin" }}MacOS
{{- else }}{{ title .Os }}{{ end }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else }}{{ .Arch }}{{ end }}
format_overrides:
- # Which GOOS to override the format for.
goos: windows
format: zip
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
winget:
- # Name of the recipe
#
# Default: ProjectName
# Templates: allowed
name: regit
# Publisher name.
#
# Templates: allowed
# Required
publisher: Aryan Bharti Inc
# Your app's description.
#
# Templates: allowed
# Required
short_description: "regit a is a CLI for managing git repositories and histories"
# License name.
#
# Templates: allowed
# Required
license: "mit"
# Publisher URL.
#
# Templates: allowed
publisher_url: https://github.com/woaitsaryan/regit
# Publisher support URL.
#
# Templates: allowed
publisher_support_url: "https://github.com/woaitsAryan/regit/issues"
# Package identifier.
#
# Default: Publisher.ProjectName
# Templates: allowed
package_identifier: woaitsAryan.regit
# IDs of the archives to use.
# Empty means all IDs.
# ids:
# - foo
# - bar
# Which format to use.
#
# Valid options are:
# - '': archives or binaries
# - 'msi': msi installers (requires the MSI pipe configured, Pro only)
# - 'archive': archives (only if format is zip),
# - 'binary': binaries
#
# Default: ''
# Since: v1.24 (pro)
# use: binary
# GOAMD64 to specify which amd64 version to use if there are multiple
# versions from the build section.
#
# Default: v1
goamd64: v1
# Product code to be used.
#
# Usually needed when `use: msi`.
#
# Since: v1.24 (pro)
# product_code: AAAA-BBB-CCC-DDD-EEEFFF
# URL which is determined by the given Token (github, gitlab or gitea).
#
# Default depends on the client.
# Templates: allowed
url_template: "https://github.com/woaitsAryan/regit/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
# Git author used to commit to the repository.
commit_author:
name: woaitsAryan
email: [email protected]
# The project name and current git tag are used in the format string.
#
# Templates: allowed
commit_msg_template: "New Package: {{ .PackageIdentifier }}: {{ .Tag }}"
# Path for the file inside the repository.
#
# Default: manifests/<lowercased first char of publisher>/<publisher>/<version>
path: manifests/w/woaitsAryan/regit/0.2.1
# Your app's homepage.
homepage: "https://github.com/woaitsAryan/regit"
# Your app's long description.
#
# Templates: allowed
description: "regit is a CLI tool written in Golang with several features to manage git repositories and histories."
# License URL.
#
# Templates: allowed
license_url: "https://raw.githubusercontent.com/woaitsAryan/regit/main/LICENSE"
# Setting this will prevent goreleaser to actually try to commit the updated
# package - instead, it will be stored on the dist directory only,
# leaving the responsibility of publishing it to the user.
#
# If set to auto, the release will not be uploaded to the repository
# in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
#
# Templates: allowed
skip_upload: true
# Release notes.
#
# If you want to use the release notes generated by GoReleaser, use
# `{{.Changelog}}` as the value.
#
# Templates: allowed
release_notes: "{{.Changelog}}"
# Tags.
tags:
- golang
- cli
# Repository to push the generated files to.
repository:
# Repository owner.
#
# Templates: allowed
owner: woaitsAryan
# Repository name.
#
# Templates: allowed
name: winget-pkgs
# Optionally a branch can be provided.
#
# Default: default repository branch
# Templates: allowed
branch: master
# .goreleaser.
# snapcrafts:
#- #
# ID of the snapcraft config, must be unique.
#
# Default: 'default'
# id: regit
#
# Default: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
# Templates: allowed
# name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
# The name of the snap. This is optional.
#
# Default: ProjectName
# name: regit
# The canonical title of the application, displayed in the software
# centre graphical frontends.
#
# Since: v1.19
# title: Regits
# Path to icon image that represents the snap in the snapcraft.io store
# pages and other graphical store fronts.
#
# Since: v1.19
# icon: static/icon.png
# Whether to publish the snap to the snapcraft store.
# Remember you need to `snapcraft login` first.
# publish: true
# Single-line elevator pitch for your amazing snap.
# 79 char long at most.
# summary: CLI tool to manage git repositories and histories
# This the description of your snap. You have a paragraph or two to tell the
# most important story about your snap. Keep it under 100 words though,
# we live in tweetspace and your description wants to look good in the snap
# store.
# description: Regit is a CLI tool written in Go to efficiently rewrite git histories by changing ownership, timestamps, commit messages in just one command
# Disable this configuration.
#
# Templates: allowed (since v1.20)
# disable: false
# Channels in store where snap will be pushed.
#
# More info about channels here:
# https://snapcraft.io/docs/reference/channels
#
# Default:
# grade is 'stable': ["edge", "beta", "candidate", "stable"]
# grade is 'devel': ["edge", "beta"]
# Templates: allowed (since v1.15)
# channel_templates:
# - edge
# - beta
# - candidate
# - stable
# - "{{ .Major }}.{{ .Minor }}/edge"
# - "{{ .Major }}.{{ .Minor }}/beta"
# - "{{ .Major }}.{{ .Minor }}/candidate"
# - "{{ .Major }}.{{ .Minor }}/stable"
# A guardrail to prevent you from releasing a snap to all your users before
# it is ready.
# `devel` will let you release only to the `edge` and `beta` channels in the
# store. `stable` will let you release also to the `candidate` and `stable`
# channels.
# grade: stable
# Snaps can be setup to follow three different confinement policies:
# `strict`, `devmode` and `classic`. A strict confinement where the snap
# can only read and write in its own namespace is recommended. Extra
# permissions for strict snaps can be declared as `plugs` for the app, which
# are explained later. More info about confinement here:
# https://snapcraft.io/docs/reference/confinement
# confinement: devmode
# Your app's license, based on SPDX license expressions:
# https://spdx.org/licenses
# license: MIT
# A snap of type base to be used as the execution environment for this snap.
# Valid values are:
# * bare - Empty base snap;
# * core - Ubuntu Core 16;
# * core18 - Ubuntu Core 18.
# base: core18
# A list of features that must be supported by the core in order for
# this snap to install.
#
# Since: v1.19
# assumes:
# - snapd2.38
# his top-level keyword to define a hook with a plug to access more
# privileges.
#
# Since: v1.19
# hooks:
# install:
# - network
# Add extra files on the resulting snap. Useful for including wrapper
# scripts or other useful static files. Source filenames are relative to the
# project directory. Destination filenames are relative to the snap prime
# directory.
# extra_files:
# - source: drumroll.wrapper
# destination: bin/drumroll.wrapper
# mode: 0755
# With layouts, you can make elements in $SNAP, $SNAP_DATA, $SNAP_COMMON
# accessible from locations such as /usr, /var and /etc. This helps when
# using pre-compiled binaries and libraries that expect to find files and
# directories outside of locations referenced by $SNAP or $SNAP_DATA.
# About snap environment variables:
# * HOME: set to SNAP_USER_DATA for all commands
# * SNAP: read-only install directory
# * SNAP_ARCH: the architecture of device (eg, amd64, arm64, armhf, i386, etc)
# * SNAP_DATA: writable area for a particular revision of the snap
# * SNAP_COMMON: writable area common across all revisions of the snap
# * SNAP_LIBRARY_PATH: additional directories which should be added to LD_LIBRARY_PATH
# * SNAP_NAME: snap name
# * SNAP_INSTANCE_NAME: snap instance name incl. instance key if one is set (snapd 2.36+)
# * SNAP_INSTANCE_KEY: instance key if any (snapd 2.36+)
# * SNAP_REVISION: store revision of the snap
# * SNAP_USER_DATA: per-user writable area for a particular revision of the snap
# * SNAP_USER_COMMON: per-user writable area common across all revisions of the snap
# * SNAP_VERSION: snap version (from snap.yaml)
# More info about layout here:
# https://snapcraft.io/docs/snap-layouts
# layout:
# # The path you want to access in sandbox.
# /etc/drumroll:
# # Which outside file or directory you want to map to sandbox.
# # Valid keys are:
# # * bind - Bind-mount a directory.
# # * bind_file - Bind-mount a file.
# # * symlink - Create a symbolic link.
# # * type - Mount a private temporary in-memory filesystem.
# bind: $SNAP_DATA/etc
# Each binary built by GoReleaser is an app inside the snap. In this section
# you can declare extra details for those binaries. It is optional.
# See: https://snapcraft.io/docs/snapcraft-app-and-service-metadata
# apps:
# The name of the app must be the same name as the binary built or the snapcraft name.
# regit:
# If you any to pass args to your binary, you can add them with the
# args option.
# args: --quiet, --verbose, --path
# The kind of wrapper to generate for the given command.
#
# Since: v1.6
# adapter: none
# D-Bus name this service is reachable as. Mandatory if daemon=dbus.
#
# Since: v1.6
# bus_name: drumbus
# A list of commands to be executed in order before the command of this
# app.
#
# Since: v1.6
# An identifier to a desktop-id within an external appstream file.
# https://snapcraft.io/docs/using-external-metadata
#
# Since: v1.6
# common_id: "com.example.drumroll"
# Bash completion snippet. More information about completion here:
# https://snapcraft.io/docs/tab-completion.
# completer: drumroll-completion.bash
# You can override the command name.
#
# Default: AppName
# command: regit
# If you want your app to be autostarted and to always run in the
# background, you can make it a simple daemon.
# daemon: simple
# Location of the .desktop file.
#
# Since: v1.6
# desktop: usr/share/applications/drumroll.desktop
# A set of key-value pairs specifying environment variables.
#
# Since: v1.6
# environment:
# foo: bar
# baz: quo
# A list of Snapcraft extensions this app depends on.
# https://snapcraft.io/docs/snapcraft-extensions
#
# Since: v1.6
# extensions: ["gnome-3-38"]
# Defines whether a freshly installed daemon is started automatically,
# or whether startup control is deferred to the snap.
# Requires `daemon` to be set.
#
# Since: v1.6
# install_mode: "disable"
# A set of key-value attributes passed through to snap.yaml without
# snapcraft validation.
# https://snapcraft.io/docs/using-in-development-features
#
# Since: v1.6
# passthrough:
# foo: bar
# If your app requires extra permissions to work outside of its default
# confined space, declare them here.
# You can read the documentation about the available plugs and the
# things they allow:
# https://snapcraft.io/docs/supported-interfaces.
# plugs: ["home", "network", "personal-files"]
# Sets a command to run from inside the snap after a service stops.
#
# Since: v1.6
# post_stop_command: foo
# Controls whether the daemon should be restarted during a snap refresh.
#
# Since: v1.6
# refresh_mode: endure
# Command to use to ask the service to reload its configuration.
# Requires `daemon` to be set.
#
# Since: v1.6
# reload_command: foo
# Restart condition of the snap.
# https://snapcraft.io/docs/snapcraft-yaml-reference
# restart_condition: "always"
# List of slots for interfaces to connect to.
#
# Since: v1.6
# slots: ["foo", "bar", "baz"]
# Maps a daemon’s sockets to services and activates them.
# Requires `plugs` to contain `network-bind`.
#
# Since: v1.6
# sockets:
# sock:
# listen-stream: $SNAP_COMMON/socket
# socket-group: socket-group
# socket-mode: 416
# Time to wait for daemon to start.
#
# Since: v1.6
# start_timeout: 42ms
# Command to use to stop the service.
# Requires `daemon` to be set.
#
# Since: v1.6
# stop_command: foo
# Controls how the daemon should be stopped.
# Requires `daemon` to be set.
#
# Since: v1.6
# stop_mode: sigterm
# Time to wait for daemon to stop.
#
# Since: v1.6
# stop_timeout: 42ms
# Schedules when, or how often, to run a service or command.
# Requires `daemon` to be set.
# https://snapcraft.io/docs/services-and-daemons
#
# Since: v1.6
# timer: "00:00-24:00/24"
# Declares the service watchdog timeout.
# Requires `plugs` to contain `daemon-notify`.
#
# Since: v1.6
# watchdog_timeout: 42ms
# Allows plugs to be configured. Plugs like system-files and personal-files
# require this.
# plugs:
# config-files:
# read:
# - $HOME/.config/regit
# write:
# - $HOME/.config/regit
brews:
-
# Name of the recipe
name: regit
goarm: 6
goamd64: v1
url_template: "https://github.com/woaitsAryan/regit/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
# Git author used to commit to the repository.
commit_author:
name: woaitsAryan
email: [email protected]
# The project name and current git tag are used in the format string.
commit_msg_template: "{{ .ProjectName }} {{ .Tag }}"
# Directory inside the repository to put the formula.
directory: Formula/r
# Caveats for the user of your binary.
caveats: "Just run the command by typing regit, the help menu will assist you"
# Your app's homepage.
homepage: "https://github.com/woaitsAryan/regit"
# Your app's description.
description: "CLI tool to manage git repositories and histories"
license: "MIT"
test: |
system "#{bin}/regit", "help"
install: |
system "go", "build", "-o", "#{bin}/regit", "."
dependencies:
- name: go
type: build
- name: git-filter-repo
skip_upload: true
repository:
# Repository owner.
owner: woaitsAryan
# Repository name.
name: homebrew-core
branch: master
chocolateys:
- name: regit
owners: Aryan Bharti Inc
title: regit
authors: Aryan Bharti
project_url: https://github.com/woaitsaryan/regit
url_template: "https://github.com/woaitsAryan/regit/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
icon_url: "https://raw.githubusercontent.com/woaitsAryan/regit/main/assets/icon.png"
copyright: 2024 GolangCI
license_url: https://github.com/woaitsAryan/regit/blob/main/LICENSE
require_license_acceptance: false
project_source_url: https://github.com/woaitsAryan/regit
package_source_url: https://github.com/woaitsAryan/regit
docs_url: https://github.com/woaitsAryan/regit/blob/main/README.md
bug_tracker_url: https://github.com/woaitsAryan/regit/issues
tags: "go golang git cobra"
summary: Fast linters Runner for Go
description: |
{{ .ProjectName }} installer package.
CLI for managing git repositories and histories.
release_notes: "https://github.com/woaitsAryan/regit/releases/tag/v{{ .Version }}"
api_key: "{{ .Env.CHOCOLATEY_API_KEY }}"
source_repo: "https://push.chocolatey.org/"
skip_publish: true
goamd64: v1