Releases: herrhotzenplotz/gcli
2.5.0
I am pleased to announce the release of gcli 2.5.0!
Included are lots of bug fixes and a few new improvements such as optional support for lowdown to render markdown.
Thank you for all the contributions and bug reports.
You can find a summary of all the changes below.
Please report back in case you find bugs, bad documentation or other suggestions you have.
You can reach us on IRC in #gcli on Libara.Chat or on the mailing list at https://lists.sr.ht/~herrhotzenplotz/gcli-discuss.
Download
You can find release tarballs here:
https://herrhotzenplotz.de/gcli/releases/gcli-2.5.0/
Changelog
Added
- Added a
-R
flag to the comment subcommand that allows you to
reply to a comment with the given ID.
Fixed
-
In various configuration places and environment variables where
boolean values are accepted you can now specifytrue
as a truthy
value.Submitted by: Gavin-John Noonan [email protected]
-
The configure script now exits gracefully whenever a required
program couldn't be found.Reported by: Alexey Ugnichev [email protected]
-
A bug genereting invalid JSON when adding labels to a GitHub issue
was fixed. -
The reviews cache directory is now automatically created if it
doesn't exist avoiding a 'No such file or directory' error when
invoking the review action for the first time.Reported by: Bence Ferdinandy [email protected]
-
A few bugs in the patch parser have been fixed:
- Under rare conditions hunk ranges were incorrectly parsed
- Parser errors when a diff included lines starting with a backslash
(e.g. when there is no newline at the end of file) were fixed
Reported by: Bence Ferdinandy [email protected]
-
The installation location of the manual pages of gcli has been
fixed. The latest release accidentially installed manual pages to
${DESTDIR}${PREFIX}/share/man
instead of
${DESTDIR}${PREFIX}/share/man/manX
.Reported by: Bence Ferdinandy [email protected]
Changed
-
The pipelines subcommand has been refactored to accept actions
for pipelines. This allows cases where a pipeline triggers child
pipelines to be handled properly.See
gcli-pipelines(1)
for documentation.Reported by: Bence Ferdinandy [email protected]
2.4.0
I am pleased to announce the release of gcli 2.4.0 with a lot of new features and touch-ups!
Thank you for all the contributions and bug reports. Also a big thank you to all the testers during the pre-release phase.
You can find a summary of all the changes below.
Please report back in case you find bugs, bad documentation or other suggestions you have.
You can reach us on IRC in #gcli on Libara.Chat or on the mailing list at https://lists.sr.ht/~herrhotzenplotz/gcli-discuss.
Download
You can find release tarballs here: https://herrhotzenplotz.de/gcli/releases/gcli-2.4.0/
Changelog
Added
-
Added a convenience flag
-V
or--version
that prints the version of gcli. -
Added an option to disable the spinner to indicate network activity
You can now either set
disable-spinner=yes
in your default section in the config file, specify--no-spinner
as a command line flag or set the environment variableGCLI_NOSPINNER
to disable the spinner. This is useful for dumb terminal environments like acme where the\r
used by the spinner is not interpreted.
Submitted by: Gavin-John Noonan -
Added an interactive status feature
Running
gcli status
will now drop you into a prompt-based interactive TODO/notification menu. Currently this only supports issues however this will be extended in future releases. The old behaviour ofgcli status
showing a list of notifications can be achieved by supplying the-l
or--list
option.See also https://gitlab.com/herrhotzenplotz/gcli/-/issues/224
-
Experimental support for code review has been added
When enabling experimental features through either:
- setting
GCLI_ENABLE_EXPERIMENTAL
in the environment toyes
- setting
enable-experimental
in the default section of the gcli config file to yes
you will get a action
review
on the pull request subcommand.This subcommand will pull down the diff of the given pull request and loads it into your editor. You can then annotate the diff, save and quit. gcli will then parse the diff, extract comments and allows you to submit them as a review.
Please refer to the new
gcli-pulls-review(1)
manual page that has been added for this feature.Also note that this is experimental and may be buggy. However, testing is very much appreciated and I will gladly discuss ideas and usability issues.
Please check in on IRC (#gcli on Libera.Chat) for these matters and/or post to our mailing list at https://lists.sr.ht/~herrhotzenplotz/gcli-discuss.
- setting
Fixed
-
Fixed resolving true .git directory when working inside a git worktree. This used to work before, however newer versions of git changed how these worktrees pointing to the true git directory.
Reported by: Robert Clausecker -
Fixed bad error message extraction when API errors occured on GitLab. We now check for common error message fields in the returned payload from the GitLab API and choose the (probably) most useful one.
-
Fixed segmentation fault when displaying certain pull requests on Gitea.
-
Fixed some spelling mistakes in various manual pages
Changed
-
The GitLab API returns the list of comments in reverse chronological order. We now reverse this list to print the comments in the correct order such that a logical timeline of a conversation can be seen.
-
The build system of gcli has been migrated away from Autotools. The GNU autotools have been complicating and slowing down the gcli builds by a huge amount. Using autotools prevented easy cross-compilation of gcli because it would have required the use of GNU make. Instead of autotools we now use a hand-written configure script and a hand-written Makefile that gets pre-processed by the configure script. You can still invoke the configure script as expected however some options aren't available anymore.
Packagers are likely interested in the
--release
flag of the configure script. Most other compilation environment flags are controlled by environment variables. Please refer to./configure --help
for more information. TheHACKING.md
file also includes valuable information including examples.Out-of-tree builds are still fully supported.
If you encounter bugs / other difficulties due to these changes please report back!
2.3.0
2.3.0 (2024-Mar-25)
This is the version 2.3.0 release of gcli.
GCLI is available in FreeBSD Ports,
Debian,
NixPkgs,
the AUR
and PkgSrc.
Please download pre-autoconfiscated tarballs here.
Warning! The provided tarballs on GitHub and GitLab are not autoconfiscated. Please use the link above.
Thank you to all the contributors and folks bringing gcli to various distributions!
Please test and report back.
Notes
Development of gcli is being moved over to Sourcehut. Patches can be submitted to the respective mailing list.
See details on the gcli homepage.
For discussions there is now also an IRC Channel #gcli on Libera.Chat.
Changes
Added
-
It is now possible to build gcli against libgcli as a DLL on cygwin.
Submitted by: Daisuke Fujimura -
The pulls subcommand now allows searching for pull requests with a given search term.
The search terms can be appended to the regular pull subcommand for listing PRs:$ gcli pulls -L bug segmentation fault
The above will search for pull requests containing »segmentation fault« and the label »bug«.
-
An interactive mode for creating both PRs and issues has been added.
You can now interactively create pull requests and issues by omitting their title:$ gcli issues create Owner [herrhotzenplotz]: Repository [gcli]: Title: foo The following issue will be created: TITLE : foo OWNER : herrhotzenplotz REPO : gcli MESSAGE : No message Do you want to continue? [yN]
Fixed
-
gcli was incorrectly using an environment variable XDG_CONFIG_DIR.
This variable has now been fixed to be XDG_CONFIG_HOME.
Submitted by: Jakub Wilk -
Fixed a segmentation fault when listing forks
-
Fixed error when submitting a comment on Gitlab issues
-
The build on Haiku has been fixed. GCLI can now be compiled and used on this platform.
2.2.0
This is the version 2.2.0 release of gcli.
GCLI is available in FreeBSD Ports, Debian Testing and NixPkgs.
Please download pre-autoconfiscated tarballs here.
Warning! The provided tarballs on GitHub and GitLab are not autoconfiscated. Please use the link above.
Thank you to all the contributors and folks bringing gcli to various distributions!
Notes
Development of gcli is being moved over to Sourcehut. Patches can be submitted to the respective mailing list.
See details on the gcli homepage.
For discussions there is now also an IRC Channel #gcli on Libera.Chat.
Changelog
Added
-
Preliminary (and thus experimental) support for Bugzilla has been added. For this a new yet undocumented
attachments
subcommand has been introduced. Currently if no account has been specified it will default to the FreeBSD Bugzilla - this may however change in the future. -
A search feature has been added to the issues subcommand. You can now optionally provide trailing text to the issues subcommand which will be used as a search term:
$ gcli issues -A herrhotzenplotz Segfault
This will search for tickets authored by herrhotzenplotz containing "Segfault".
-
Added partial support for auto-merge. When creating a pull request on Gitlab and Github you can set an automerge flag. Whenever this automerge flag is set a pull request will be merged once all the pipelines/checks on the pull request pass.
This feature is not fully documented yet as there are bugs in it, especially on Gitlab there are flaws. Please consider this feature unstable and experimental.
Fixed
-
Fixed a segmentation fault when getting a 404 on Gitlab. This bug occured on Debian Linux when querying pipelines at the KiCad project. The returned 404 contained unparsable data which then lead to the error message to be improperly initialised.
Reported by: Simon Richter -
Fixed missing URL-encode calls in Gitlab Pipelines causing 404 errors when using subprojects on Gitlab. You're now not forced anymore to manually urlencode slashes as %2F in the repos.
Reported by: Simon Richter -
Fixed the patch generator for Gitlab Merge Requests to produce patches that can be applied with
git am
. Previously the patches were invalid when new files were created or deleted. -
Fixed Segmentation fault when the editor was opened and closed without changing the file. Several subcommands have been updated to also account for empty user messages.
-
Fixed incorrect colour when creating labels. In any forge the provided colour code was converted incorrectly and always producing the wrong colour.
-
Fixed a segmentation fault when listing Github gists
-
Fixed possible JSON escape bug when creating a Github Gist
-
Fixed gcli reporting incorrect libcurl version in the User-Agent header when performing HTTP requests.
-
Fixed possible segmentation fault when no token was configured in gcli configuration file.
Changed
- Internally a lot of code was using string views. Maintaining this was a bit cumbersome and required frequent reallocations. A lot of these uses have been refactored to use plain C-Strings now. This also involved changing some code to use the new
gcli_jsongen
set of routines. Due to these changes there may be regressions that are only visible during use. If you encounter such regressions where previously working commands suddenly fail due to malformed requests please report immediately.
Version 2.1.0
2.1.0 (2023-Dec-08)
This is the version 2.1.0 release of gcli.
Good news! GCLI is now available in both Debian Unstable and Testing
as well as NixPkgs Unstable.
Please download pre-autoconfiscated tarballs here.
Warning! The provided tarballs on GitHub and GitLab are not autoconfiscated. Please use the link above.
Thank you to all the contributors and folks bringing gcli to various distributions!
Notes
Development of gcli is being moved over to Sourcehut.
Patches can be submitted to the respective mailing list.
See details on the gcli homepage.
For discussions there is now also an IRC Channel #gcli on Libera.Chat.
Changelog
Added
- Added a little spinner to indicate network activity
- Added Windows 10 MSYS2 to list of confirmed-to-work platforms
- Added a new action
set-visibility
to the repos subcommand that allows updating the visibility level of a repository. - Added a new action
request-review
to the pulls subcommand that allows requesting a review of a pull request from a given user. - One can now define custom aliases in the alias section of the config file. Aliases are very primitive as of now. This means they are just different names for subcommands. Aliases may reference other aliases.
- Added a new
-M
flag to both the pulls and the issues subcommand to allow filtering by milestones. - Added a new
patch
action to the pulls subcommand. This allows you to print the entire patch series for a given pull request. Also added the missing implementations for this feature for Github and Gitea. - Added a new
title
action to both the issues and the pulls subcommand that allows updating their titles.
Fixed
- Fixed incorrect internal help message of the
repos
subcommand. - Worked around ICE with xlC 16 on ppc64le Debian Linux, gcli now compiles using xlC and works too.
- Fixed various memory leaks.
- Spelling fixes in manual pages (submitted by Jakub Wilk #121)
- Wired up alread existing implementation for forking on Gitea to gcli command.
- The
status
subcommand now works properly on Gitea.
Changed
- Subcommands can now be abbreviated by providing an unambiguous prefix that matches the subcommand.
Version 2.0.0
Changelog
This changelog does not follow semantic versioning.
2.0.0 (2023-Sep-21)
You can download pre-autotoolised tarballs at: https://herrhotzenplotz.de/gcli/releases/gcli-2.0.0/
Please test and report bugs!
Added
- This changelog has been added
- gcli is now built as a shared or static library which the gcli tool links against. This implied so many changes that the major version number was bumped.
- Added a package-config file for libgcli
- Added a
-L
flag to theissues
andpulls
subcommand to allow filtering by label - A work-in-progress tutorial has been added and is available at the GCLI directory on my website.
- Gitlab jobs now show coverage information
Fixed
- Parallel builds in autotools have been re-enabled
- Improved error messages in various places
- Bad roff syntax in manual pages has been fixed
Changed
- the
gcli pulls create
subcommand does not print the URL to the created release anymore. - The test suite is now using atf-c and kyua. These are dependencies if you want to run the tests. These tools are installed out of the box on most BSDs.
- A newly introduced dependency is the
sys/queue.h
header. On GNU/Linux systems you might need to install it as part of libbsd.
Removed
- The reviews subcommand has been removed because it was generally useless. This feature will be reimplemented as a WIP of #189
1.2.0
Version 1.2.0
This is version 1.2.0 of gcli.
Notes
Please test and report bugs.
You can download autotoolized tarballs at: https://herrhotzenplotz.de/gcli/releases/gcli-1.2.0/
Bug Fixes
- Fix compile error when providing --with-libcurl without any arguments
- Fix memory leaks in string processing functions
- Fix missing nul termination in read-file function
- Fix segmentation fault when clearing the milestone of a PR on Gitea
- Fix missing documentation for milestone action in issues and pulls
- Set the 'merged' flag properly when showing Gitlab merge requests
New features
- Add a config subcommand for managing ssh keys (see gcli-config(1))
- Show number of comments/notes in list of issues and PRs
- Add support for milestone management in pull requests
Version 1.1.0
Version 1.1.0
This is version 1.1.0 of gcli.
Notes
I have changed the versioning scheme to major.minor.patch
.
Please test and report bugs.
You can download autotoolized tarballs at: https://herrhotzenplotz.de/gcli/releases/gcli-1.1.0/
Bug Fixes
- Fixed 'Validation failed' error with GitHub issues
- Print an error message when missing actions for a specific item
(like issues, pulls, etc.) - Prevent text pretty printer for accidentially skipping the string
NUL-terminator - Fix segmentation fault when listing GitLab repositories
- Enforce
_XOPEN_SOURCE
to be set to 600 in the build system, this
fixes some warnings on glibc systems.
New features
- Add an action to deassign issues from milestones (
milestone -d
in
issues subcommand) - When merging pull requests delete the source branch by default
now. This can be inhibited through the.gcli
file or by specifying
a flag to the merge action. - Add a
-A
filter option to the pulls subcommand that searches only
for pull requests by a given author.
Patch version 1.0.3.1
Patch Version 1.0.3.1
This is a patch release since the issues subcommand for listing
issues was broken and thus useless for Github remotes. I am sorry
for the inconveniences.
Please test and report bugs on Gitlab, Github or via E-Mail.
You can download pre-autotoolized tarballs at
https://herrhotzenplotz.de/gcli/releases/gcli-1.0.3.1/.
Please also refer to the previous Changelog for a list of changes
and news.
Version 1.0.3
This is version 1.0.3 of gcli.
You can download source tarballs at:
https://herrhotzenplotz.de/gcli/releases/gcli-1.0.3/
WARNING If you download the tarballs provided by Gitlab or Github
you need autoconf, automake and libtool installed on your system. The
tarballs on my website do not impose this requirement.
Please test and report bugs on Gitlab, Github or via E-Mail.
New features
- Add a --author flag to filter issues from a given user
- Add artifacts action for pipelines subcommand to download artifacts
zip archive - Add action for setting the due date of a milestone
- Add »all« action for milestones subcommand
Bug fixes
- Fix bug making it impossible to create labels on Gitlab
- Follow HTTP redirections in libcurl interface code
- Fix »opendir: not a directory« error when operating inside git
worktrees - Fix segfault when trying to fetch issue list of a Gitea milestone