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)


  1. avesus
    15.06.2015 15:14
    -1

    SDK на node.js! Просто. Замечательно!


    1. eyeofhell
      15.06.2015 15:23

      Удобство порождает тренд. «npm install» — и все работает.


      1. avesus
        15.06.2015 15:49
        -19

        node.js — заразная вещь. Трендовое удобство порождает зависимость (addiction) разработчика. А чего libuv стоит! Все наши наработки за последние десять лет в одном флаконе. Go проприетарен (ну для Google же разработан, специально, для их обширных Java-кодеров), Rust меняется быстрее, чем успеваешь писать на нём код. Python хорош для своих задач, Ruby — не очень быстрый на production (если честно, я так и не полюбил его синтаксис). Erlang радикален, Haskell маргинален. На C/C++ писать — хардкор (сложно, долго, дорого).

        node.js = profit!

        Клёво, что Atlassian идёт в ногу со временем. Давно хотел триггеры от системы, которая позволяет хранить у себя проприетарные исходники. Теперь Bitbucket не просто халява, а удобная халява. Обязательно будем использовать.


        1. cy-ernado
          15.06.2015 16:13
          +3

          Пруф на то, что go — проприетарен, у вас есть?

          Вот вам интересная ссылка: habrahabr.ru/post/228751
          Возможно, узнаете что-то новое.


          1. avesus
            15.06.2015 18:56
            -4

            Давно ознакомлен. Вы попробуйте САМИ писать на нём.


            1. cy-ernado
              15.06.2015 19:00
              +1

              На ноде? Или на го?

              После того, как на ноде хелло-ворлд мне выдал 79к rps (и то через cluster) против 134к у полностью реализованого демона (1 процесс), я сделал свой выбор.
              А после того, как этот демон задеплоился одной командой scp и стал занимать всего 10 мегабайт оперативной памяти, этот выбор лишь подкрепился.

              А js мне хватает и на фронтенде, уж спасибо.


        1. sandricmora
          15.06.2015 18:09
          +5

          Go проприетарен (ну для Google же разработан, специально, для их обширных Java-кодеров), Rust меняется быстрее, чем успеваешь писать на нём код. Python хорош для своих задач, Ruby — не очень быстрый на production (если честно, я так и не полюбил его синтаксис). Erlang радикален, Haskell маргинален. На C/C++ писать — хардкор (сложно, долго, дорого).

          Добавлю это сюда как цитату, спасибо.


          1. avesus
            15.06.2015 19:17
            -4

            1. sandricmora
              15.06.2015 19:32
              +3

              И к чему вы это мне написали? Я вам ничего плохого про ноду не говорил, сам его с удовольствием каждый день использую. Правда как и go, как и ruby, а сижу вообще под иксмонадой которая на «магринальном» хаскелле написана. Я имел ввиду что это предложение, в котором все перечисленные яп для вас плохи очень обобщающее, однобокое, а про проприетарность go вообще странное.


  1. NevRA
    15.06.2015 17:15
    +3

    Классно. В битбакете сильно не хватало разного рода статистических графов как в гитхабе, фичареквест сто лет уже висит. А сейчас там появился Awesome Graphs for Bitbucket, в статусе Prewiew правда, с небольшим функционалом, но уже хорошее начало и рабочее.


  1. Korobov
    15.06.2015 20:25
    +1

    Вангуюется магазин с малым количеством бесплатных плагинов/сервисов? С Jira, и Confluence было так. Поставил, пользуешься, чего-то понадобилось, покупаешь плагин. Блин.


  1. Svetlyak
    16.06.2015 15:21

    Я вот не до конца понял, при чем здесь SDK на node.js и чего вы так все на него возбудились. Сказано же — битбакет ходит в расширения по HTTP а значит там на стороне расширения может быть всё что угодно, хоть bash за Apache в CGI.