diff options
Diffstat (limited to 'users/grfn/emacs.d/github-org.el')
-rw-r--r-- | users/grfn/emacs.d/github-org.el | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/users/grfn/emacs.d/github-org.el b/users/grfn/emacs.d/github-org.el deleted file mode 100644 index f4f9d2e37069..000000000000 --- a/users/grfn/emacs.d/github-org.el +++ /dev/null @@ -1,99 +0,0 @@ -;;; -*- lexical-binding: t; -*- - -(require 'ghub) - -(defun grfn/alist->plist (alist) - (->> alist - (-mapcat (lambda (pair) - (list (intern (concat ":" (symbol-name (car pair)))) - (cdr pair)))))) - -;;; - -(cl-defstruct pull-request url number title author repository) - -(defun grfn/query-pulls (query) - (let ((resp (ghub-graphql "query reviewRequests($query: String!) { - reviewRequests: search( - type:ISSUE, - query: $query, - first: 100 - ) { - issueCount - nodes { - ... on PullRequest { - url - number - title - author { - login - ... on User { name } - } - repository { - name - owner { login } - } - } - } - } - }" `((query . ,query))))) - (->> resp - (alist-get 'data) - (alist-get 'reviewRequests) - (alist-get 'nodes) - (-map - (lambda (pr) - (apply - #'make-pull-request - (grfn/alist->plist pr))))))) - -(defun grfn/requested-changes ()) - -(defun grfn/pull-request->org-headline (format-string level pr) - (check-type format-string string) - (check-type level integer) - (check-type pr pull-request) - (s-format (concat (make-string level ?*) " " format-string) - 'aget - `((author . ,(or (->> pr (pull-request-author) (alist-get 'name)) - "no author")) - (owner . ,(->> pr (pull-request-repository) - (alist-get 'owner) - (alist-get 'login))) - (repo . ,(->> pr (pull-request-repository) (alist-get 'name))) - (pr-link . ,(org-make-link-string - (pull-request-url pr) - (pull-request-title pr))) - (today . ,(format-time-string "%Y-%m-%d %a"))))) - -(defun grfn/org-headlines-from-review-requests (level) - "Create org-mode headlines at LEVEL from all review-requested PRs on Github" - (interactive "*nLevel: ") - (let* ((prs (grfn/query-pulls - "is:open is:pr review-requested:glittershark archived:false")) - (text (mapconcat - (apply-partially - #'grfn/pull-request->org-headline - "TODO Review ${author}'s PR on ${owner}/${repo}: ${pr-link} :pr: -SCHEDULED: <${today}>" - level) prs "\n"))) - (save-mark-and-excursion - (insert text)) - (org-align-tags 't))) - -(defun grfn/org-headlines-from-requested-changes (level) - "Create org-mode headlines at LEVEL from all PRs with changes requested - on Github" - (interactive "*nLevel: ") - (let* ((prs (grfn/query-pulls - (concat "is:pr is:open author:glittershark archived:false " - "sort:updated-desc review:changes-requested"))) - (text (mapconcat - (apply-partially - #'grfn/pull-request->org-headline - "TODO Address review comments on ${pr-link} :pr: -SCHEDULED: <${today}>" - level) prs "\n"))) - (save-mark-and-excursion - (insert text)) - (org-align-tags 't))) |