# org-mode и Github Projects
vit01 (mira, 1) → All – 14:36:41 2018-11-14
У Гитхаба есть фича под названием 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-скрипт с подобным содержанием:
4. В файле org-mode прописываем блок для запуска кода
:results output raw ставить обязательно, иначе org-mode будет оформлять вывод скрипта как текст вроде цитаты, а нам надо, чтобы он был в виде org-списка
5. Если в Emacs не настроен org-babel, то в конфиге прописать вот это (свои языки прописать по желанию)
6. Можно запускать. Не забудьте chmod +x для питоноскрипта
Для выполнения кода в org-mode надо лишь навести курсор на блок этого кода и нажать C-c C-c
Список гитхабопроектов появится рядом с меткой #+RESULTS:
vit01 (mira, 1) → All – 14:36:41 2018-11-14
У Гитхаба есть фича под названием 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: