:CUSTOM_ID: projects
:END:
+** Sourcehut GraphQL client for SWI-Prolog
+:PROPERTIES:
+:CUSTOM_ID: sourcehut-pl
+:END:
+
+[[https://sr.ht/~eshel/sourcehut.pl][sourcehut.pl]] - a SWI-Prolog package for interacting with the GraphQL
+API of sourcehut instances.
+
+For example, sourcehut.pl can be used to attach a build artifact to a
+given tag of a git repository:
+
+#+begin_src prolog
+ ?- use_module(library(sourcehut/git)).
+ true.
+
+ ?- sourcehut_git_repository("eshel", "sourcehut.pl", Repo, []),
+ get_dict(id, Repo, RepoId),
+ sourcehut_git_upload_artifact(RepoId, "v0.1.2", "/tmp/foo/baz.txt", Artifact, []).
+ Artifact = _{checksum:"...", created:"2022-06-06T08:16:08.044836Z", filename:"baz.txt", id:2644, size:7}.
+
+ ?- sourcehut_git_delete_artifact(2644, []).
+ true.
+#+end_src
+
** [[https://git.sr.ht/~eshel/dotfiles][GNU Emacs literate configuration]]
:PROPERTIES:
:CUSTOM_ID: emacsconf