gcli releases
—
manage releases on git forges
gcli releases |
[-sl ] [-n
n] [-o
owner -r
repo] |
gcli releases |
create -t
tagname [-n
name] [-c
commitish] [-a
asset] [-o
owner -r
repo] [-d ]
[-p ] [-T
template-file.md] |
gcli releases |
delete [-o
owner -r
repo] [-y ]
release-id |
Use gcli releases
to list, create
or delete releases for repositories on
git(1)
forges such as GitLab, Gitea or GitHub. Without a subcommand specified,
gcli releases
will list releases in the given
or auto-detected repository. If you are the owner of that repo, you will
also see draft releases. You will not see those if you are not the owner of
that particular repository.
-s
,
--sorted
- Reverse the output such that most recent items appear at the bottom.
-l
,
--long
- Print a long list instead of a short table.
-o
,
--owner
owner
- List releases in the repo of the given owner. This option can only be used
in combination with
-r
.
-r
,
--repo
repo
- List releases in the given repo. This option can only be used in
combination with
-o
.
-n
,
--count
n
- Fetch at least n releases. Setting
n to -1 will fetch all releases. Default: 30. Note
that on repositories with many releases fetching all releases can take a
considerable amount of time and may result in rate limiting by the GitHub
API.
create
- Create a new release on the given or auto-detected repository. The editor
will come up and ask you to enter a message for the release.
The following flags can be specified:
-t
,
--tag
tagname
- Specify a tag to be used or to be created for the release. This option
is mandatory. See
-c
for how to specify from
what the tag should be created.
-n
,
--name
name
- Name of the release.
-c
,
--commitish
commitish
- When a new tag is to be created, this specifies what the tag is based
on. It can be either a branch or a commit hash. Unused if the tag
already exists. Otherwise this defaults to the default branch from
git(1).
-o
,
--owner
owner
- Operate on the repository of the specified owner. This option can only
be used in combination with
-r
. Use this if
you want to e.g. create the release in an organisation and not your
own account.
-r
,
--repo
repo
- Create the release in the given repository. This option can only be
used in combination with
-o
.
-a
,
--asset
asset
- Attach the given asset to the release. It will be uploaded to GitHub
and be made available for download. You can specify this option
multiple times to attach more than one asset to the release.
-y
,
--yes
- Do not ask for confirmation before creating the release. Assume
yes.
-d
,
--draft
- Mark this release as a draft.
-p
,
--prerelease
- Mark this release as a prerelease.
-T
,
--template
template-file.md
- Use the provided template-file.md as a
template for the release message. Unless
-y
has been specified, an editor will be opened to edit a copy of this
file. Using this option together with -y
allows for completely automated creation of releases.
delete
- Delete a release.
The following options can be specified:
-r
,
--repo
repo
- Delete the release in the given repository. This option can only be
used in combination with
-o
.
-o
,
--owner
owner
- Delete the release in the repository of the given owner. This option
can only be used in combination with
-r
. Use
this if you want to delete a release in a given organisation and not
your own account.
-y
,
--yes
- Do not ask for confirmation before deleting the repository. Assume
yes.
Delete release with ID 54656866 in herrhotzenplotz/gcli-playground
without asking for confirmation:
$ gcli releases delete --owner herrhotzenplotz \
--repo gcli-playground --yes 54656866
Create a new release named Foobar in
herrhotzenplotz/gcli-playground. Create a new tag called banana based on the
commit with the hash 0fed3c9 and upload
foobar.tar.xz, barfoo.tar.gz
and CHANGELOG as assets to the release.
$ gcli releases create --owner herrhotzenplotz \
--repo gcli-playground --tag banana --name Foobar \
--commitish 0fed3c9 --asset foobar.tar.xz \
--asset barfoo.tar.gz --asset CHANGELOG
Create a release called “v2.8.0” from a pre-existing
tag. Read the release notes from the file
relnotes.md and do not ask for confirmation.
$ gcli releases create --tag v2.8.0 --name 'Version 2.8.0' \
--commitish v2.8.0 --template relnotes.md --yes
Currently uploading release assets to GitLab doesn't work.
Prereleases and draft releases are unsupported by GitLab. Using those flags
in a GitLab forge type remote will produce warnings but still create the
release.
Please report bugs via E-Mail to
https://lists.sr.ht/~herrhotzenplotz/gcli-discuss.
Alternatively you can report them on any of the forges linked at
https://sr.ht/~herrhotzenplotz/gcli.
However, the preferred and quickest method is to use the mailing list.