- Add a kludge to work around a bug in Emacs versions before 26.3 that
often but not always causes network connections to fail when using
TLS1.3. On macOS use the workaround regardless of the Emacs version
because the supposed bug fix does not appear to work there. Add a
variable
ghub-use-workaround-for-emacs-bug
to allow users to opt in or out of using the kludge. #81 - Add a new library
gsexp.el
to encode S-expressions as GraphQl documents. Previously we used the third-party librarygraphql.el
but using our own library gives us more flexibility. Currently it is rather incomplete and only intended for use byghub-graphql
but I might fill the gaps and add documentation eventually. I am not in a hurry though. #90 - No longer depend on
dash
. - Handle some undocumented Bitbucket behavior. #97
- Add new option
ghub-insecure-hosts
to allow users to connect to insecure forges. #9 - Support Github instances that use an undocumented url-schema, which users report to have sighted in the wild.
ghub-fetch-repository
now also fetchesreviewRequests
.- Various bug fixes and improvements.
- Work around bug in Emacs versions before 26.1 that prevented newly
created tokens from being used without the user invalidating
auth-source
’s cache first. - Teach
glab-repository-id
about subgroups.
- Support GraphQL aliases.
- Show number of GraphQL page currently being fetched in mode-line.
- Add a default errorback for asynchronous REST requests, which shows the same information as would be shown for a failed synchronous request.
- Signal an error if
ghub-repository-id
fails. ghub-fetch-repository
fetches a few more fields.
- Add support for Gitea, Gogs and Bitbucket.
ghub.el
supports these forges directly, but also add new librariesgtea.el
,gogs.el
andbuck.el
, which provide convenience wrappers just like the existingglab.el
. #67 - No longer split the repository into multiple Melpa packages.
I.e. the
glab.el
library is now part of theghub
package. - Add support for automatic GraphQL unpagination. #68
GraphQL was designed around the idea that you should be able to “ask for what you need and get exactly that”. Unfortunately this does not cover the “look, if I persist, then you are going to hand me over all the data anyway, so just cough it up already”, which is what Forge needs.
ghub--graphql-vacuum
provides a way to unpaginate all cursors in the returned data without having to write a lot of boilerplate. Callers have to provide the query as an s-expression that corresponds to the root request. The queries needed to follow cursors in arbitrary locations within the returned data, are automatically derived from that query.ghub-fetch-repository
fetches information about a repository. If also serves as an example for how to useghub--graphql-vacuum
.The initial queries used by
ghub-fetch-issue
andghub-fetch-pullreq
are pre-narrowed variants of the initial query ofghub-fetch-repository
. Pre-narrowing is somewhat similar to the use of fragments, but unlike that, it doesn’t result in lots of duplicated boilerplate and/or lots of variables.There is very little documentation and everything is still very much subject to change.
- Bind
url-show-message
tonil
so that the more useful messages displayed by the callers of this package are visible to the user instead of the less useful “Contacting host: api.github.com:443”. - Sometimes Github returns an HTML document instead of the promised JSON when an error occurs. Try harder to extract some meaningful information from that document.
- Work around a bug in older Emacsen that prevented
auth-source
from retrieving saved secrets. #64 - Deal with a chicken and egg problem concerning 2fa. #65
- Add new
ghub-clear-caches
command because if things go wonky it is nice to know it isn’t the cache. - Add new
ghub-repository-id
function. This function works for all supported forges and always returns a string, even for less successful forges that can still get away with using integers as ids. - Add new
ghub-graphql-rate-limit
function.
(For this an earlier releases only the most important changes are mentioned.)
- Various bug fixes.
- Support two-factor authentication.
- Support asynchronous requests.
- Support GraphQL.
- Support Gitlab.
- Support basic authentication.
- Fix various encoding issues.
- Support unauthenticated requests.
- Support Github Enterprise instances.
- Bind
json-false
tonil
instead of:json-false
.
- First release.