У Гитхаба есть фича под названием Projects. Это что-то вроде Kanban-списков для составления планов. Каждый Project содержит в себе набор карточек, в каждой из которых можно хранить заметки и отмечать сделанные дела.
В репозитории IDEC Mobile есть основной план, доступный всем, в котором я открываю и закрываю задачи. Всё бы хорошо, но, имея под рукой такой мощный инструмент как Emacs, крайне расточительно лезть каждый раз в браузер, чтобы поглядеть на список дел по проекту с кодом.
Давайте это исправим, используя python и org-mode
1. $ pip install PyGithub
Документацию по пакету можно посмотреть здесь: https://pygithub.readthedocs.io/en/latest/introduction.html
2. Получаем access-token для API Гитхаба
Идём сюда: https://github.com/settings/tokens
Получаем Personal Access Token с доступом к вашим репозиториям, копируем
3. Создаём python-скрипт с подобным содержанием:
#!/usr/bin/env python3 from github import Github g = Github("your-access-token") # 0 - это первый проект, в данном случае он единственный prj = g.get_user().get_repo("idec-mobile").get_projects()[0] # вывод форматируется в виде списка org-mode print("\n+ {" + prj.name + "} <" + prj.html_url + ">") for column in prj.get_columns(): print("\n\t+ " + column.name) for card in column.get_cards(): if card.archived: continue print("\t\t+ " + str(card.note))
4. В файле org-mode прописываем блок для запуска кода
:results output raw ставить обязательно, иначе org-mode будет оформлять вывод скрипта как текст вроде цитаты, а нам надо, чтобы он был в виде org-списка
#+BEGIN_SRC shell :results output raw ~/path/to/your/python/script #+END_SRC
5. Если в Emacs не настроен org-babel, то в конфиге прописать вот это (свои языки прописать по желанию)
(org-babel-do-load-languages 'org-babel-load-languages '( (shell . t) (python . t) (emacs-lisp . t) (C . t)) )
6. Можно запускать. Не забудьте chmod +x для питоноскрипта
Для выполнения кода в org-mode надо лишь навести курсор на блок этого кода и нажать C-c C-c
Список гитхабопроектов появится рядом с меткой #+RESULTS: