Bitbucket анонсировал «Atlassian connect for Bitbucket»: возможность создавать плагины, встраиваемые в облачную часть Bitbucket, расширяющие его интерфейс и добавляющие новые возможности. Это качественный рывок в борьбе между Bitbucket, Github, Gitlab и TFS: если раньше мы были ограничены вебхуками и REST API, то теперь появилась возможность допиливать «под себя» и для других разработчиков непосредственно облачный интерфейс. Ужа доступно несколько расширений, основанных на nodejs SDK для создания плагинов и документация.
Зачем они это сделали?
Как разъясняют в анонсе разработчики Bitbucket, одна из проблем современной разработки — это постоянное переключение контекста. Да, у нас есть интеграция между многочисленными тулзами, но это не избавляет разработчика от необходимости переключаться между облачным интерфейсом системы контроля версий, командной строкой, где он запускает тесты, облачным интерфейсом continuous integration системы и множество других кон, окошек и консолей. Платформа «Atlassian Connect» призвана облегчить жизнь разработчиков, позволяет дополнять и надстраивать существующий интерфейс облачно системы, добавляя в него необходимую функциональность и интерфейсы других сервисов. Как это выглядит «вживую» можно посмотреть на этом видео:
Как это работает?
Технически все реализовано следующим образом. Плагин, или, как его называет Atlassian, Аддон — это веб-сервер, который запускается где-то в облаке (он должен быть доступен Bitbucket по url) и регистрируется в Bitbucket по HTTP API. Когда пользователь заходит в настройки своего профиля, у него есть выбор: либо установить разрабатываемый аддон по url, либо установить один из зарегистрированных в маркете адонов. После чего Bitbucket обращается к аддону и запрашивает у него по REST API информацию по точкам расширения — какие кнопки он хочет добавить в интерфейс, какие окна предоставить и так далее. И когда пользователь попадает на экран Bitbucket, где что-то должно быть расширено и улучшено аддоном — то Bitbucket запрашивает у аддона соответствующие части интерфейса как картинки и ifram'ы, встраивает их в свой интерфейс.
Интеграция двусторонняя: не только Bitbucket получает от аддона информацию и элементы интерфейса, но и аддон обращается к Bitbucket по REST API для совершения полезных действий.
Как попробовать?
Уже доступен десяток готовых аддонов, которые можно подключить в настройках профиля пользователя, раздел «add-ons», «manage add-ons». Также можно начать разрабатывать свои аддоны: для этого доступна документация и основанный на nodejs sdk, который можно поставить с помощью npm.
Что это нам дает?
Надеюсь, что эта инициатива Bitbucket не останется незамеченной остальными разработчиками облачных VCS, и в скором времени мы увидим механизмы расширений для Github, Gilab, TFS и других платформ. Что, в свою очередь, немного облегчит жизнь разработчиков и позволит легче создавать замечательный софт.
Комментарии (12)
NevRA
15.06.2015 17:15+3Классно. В битбакете сильно не хватало разного рода статистических графов как в гитхабе, фичареквест сто лет уже висит. А сейчас там появился Awesome Graphs for Bitbucket, в статусе Prewiew правда, с небольшим функционалом, но уже хорошее начало и рабочее.
Korobov
15.06.2015 20:25+1Вангуюется магазин с малым количеством бесплатных плагинов/сервисов? С Jira, и Confluence было так. Поставил, пользуешься, чего-то понадобилось, покупаешь плагин. Блин.
Svetlyak
16.06.2015 15:21Я вот не до конца понял, при чем здесь SDK на node.js и чего вы так все на него возбудились. Сказано же — битбакет ходит в расширения по HTTP а значит там на стороне расширения может быть всё что угодно, хоть bash за Apache в CGI.
avesus
SDK на node.js! Просто. Замечательно!
eyeofhell
Удобство порождает тренд. «npm install» — и все работает.
avesus
node.js — заразная вещь. Трендовое удобство порождает зависимость (addiction) разработчика. А чего libuv стоит! Все наши наработки за последние десять лет в одном флаконе. Go проприетарен (ну для Google же разработан, специально, для их обширных Java-кодеров), Rust меняется быстрее, чем успеваешь писать на нём код. Python хорош для своих задач, Ruby — не очень быстрый на production (если честно, я так и не полюбил его синтаксис). Erlang радикален, Haskell маргинален. На C/C++ писать — хардкор (сложно, долго, дорого).
node.js = profit!
Клёво, что Atlassian идёт в ногу со временем. Давно хотел триггеры от системы, которая позволяет хранить у себя проприетарные исходники. Теперь Bitbucket не просто халява, а удобная халява. Обязательно будем использовать.
cy-ernado
Пруф на то, что go — проприетарен, у вас есть?
Вот вам интересная ссылка: habrahabr.ru/post/228751
Возможно, узнаете что-то новое.
avesus
Давно ознакомлен. Вы попробуйте САМИ писать на нём.
cy-ernado
На ноде? Или на го?
После того, как на ноде хелло-ворлд мне выдал 79к rps (и то через cluster) против 134к у полностью реализованого демона (1 процесс), я сделал свой выбор.
А после того, как этот демон задеплоился одной командой scp и стал занимать всего 10 мегабайт оперативной памяти, этот выбор лишь подкрепился.
А js мне хватает и на фронтенде, уж спасибо.
sandricmora
Добавлю это сюда как цитату, спасибо.
avesus
habrahabr.ru/post/228751/#comment_7749921
sandricmora
И к чему вы это мне написали? Я вам ничего плохого про ноду не говорил, сам его с удовольствием каждый день использую. Правда как и go, как и ruby, а сижу вообще под иксмонадой которая на «магринальном» хаскелле написана. Я имел ввиду что это предложение, в котором все перечисленные яп для вас плохи очень обобщающее, однобокое, а про проприетарность go вообще странное.