Canetas malucas: como escrevemos plug-ins para a plataforma Atlassian

Olá a todos, sou um desenvolvedor Java na YuMoney.





Neste artigo, quero falar sobre qual lucro pode ser obtido com a otimização de ferramentas existentes na empresa, por que vale a pena fazer isso e onde é melhor começar. Usando a pilha Atlassian e o plugin Bitbucket que usamos na UMoney como exemplo, vou contar e mostrar tudo em detalhes. Vai!





Se você se lembra do desenvolvimento de software nas décadas de 70 e 80, vêm à mente computadores e máquinas gigantes em que engenheiros colocavam cartões perfurados. Havia instruções, elas foram executadas, algum tipo de resultado foi obtido. E, é claro, em tal sistema não havia registro, nem CI / CD, nem contêinerização.





Uma fotografia do passado recente
Uma fotografia do passado recente

Com o tempo, o desenvolvimento se desenvolveu e, no início dos anos 2000, já coletamos arquivos de guerra (se falarmos sobre a pilha Java) e os implantamos assim, CI / CD começou a surgir.





O desenvolvimento moderno já é uma pilha gigante de tecnologia.





Zoo de ferramentas
Zoo de ferramentas

. , , , pipeline CI/CD, . . , Telegram ,  GitHub, GitLab, Bitbucket — .





Money , . .





  • Telegram-, , . , , -, DevOps, , , . , .





  • - . , , , .   Atlassian.





  • Bitbucket-. , , code review, — Bitbucket code review tools.  , Bitbucket, Confluence Jira , - . Bitbucket, GitHub Git.





, Bitbucket, GitHub, GitLab, , . , Bitbucket , REST API SDK. GitHub GitHub Actions — .





? , , , — , .





- — , .





— . , . , , . , .





—   . — , , open source , .





Bitbucket code review tools —

Bitbucket code review tools. , , code review.





A revisĂŁo do cĂłdigo Ă© o processo de revisar o cĂłdigo, encontrar bugs nele e como corrigi-los.
Code review — ,

code review , , .   .





Java. Atlassian SDK — Java. Atlassian REST API, . — , -, . , , .









, — , . pull request — , , , .





pull request





pull request, , , , . , pull request, pull request. , checked, approve pull request, , pull request — .





pull request pull request





, pull request pull request. , . pull request pull request, .





merge check





, , GitHub flow, . merge check . hotfix, . , , — develop. pull request develop, , hotfix .





20 , .






« code review ». , .





. Atlassian , , .





— Atlassian . , , , - . Atlassian Developer Community — - .





Atlassian-





.





  1. Atlassian Plugin SDK.





  2. .





  3. .





  4. .





  5. .





Atlassian Plugin SDK





Atlassian Plugin SDK. : Java, Maven. SDK . — exe-  , SDK.





Linux, , .





. — . , atlas version , . , Atlassian Plugin SDK , .





— , , Atlassian Plugin SDK Maven central repository, Maven, . IDE atlassian Maven, . , Atlassian, — .





maven-





SDK, .





Atlassian create Bitbucket plugin ( ). , Maven-, , .., . ( : https://github.com/GSkoba/bitbucket-plugin). .





Java Maven pom-, Bitbucket Atlassian, Bitbucket Parent Dependency Manager, . 





, UI ORM-.





Java , - .





src, — Atlassian-plugin.xml. - Spring — , , , -, pom.xml. , , .





, Bitbucket — , UI, , , JavaScript.





, IDE , , Maven home directory Maven, Atlassian Plugin SDK. , — IDE , .





, Atlassian.xml, , , — .









atlas-mvn — Maven, Maven SDK.





Atlassian-





, . — , Bitbucket- .





SDK version run standalone. , .





-, .





— localhost:7990/bitbucket. , , — admin/admin. , , , . , .





, manage apps.





, , Bitbucket . . - — , .





Bitbucket-:





  • UI.





  • Bitbucket.





  • Pull Request Hook.





  • Pull Request Merge Check.





  • .





UI





, , , UI , UI . , , , Selenium, , . -, , .





Query Parameter





Description





web.items





Web Item Client Web Item





web.panels





Web Panel Client Web Panel





web.sections





Web Section Client Web Section





URL, debug mode , . : https://<your Bitbucket Server instance>/projects?web.items&web.panels&web.sections. id-.





Modo de depuração
Debug mode

, UI — . , UI , , .





, , , build, . , Jenkins build. Jira . — UI-, pull requests.





UI. — soy, . React- . - , , , . JavaScript , extension point — .





Exemplo de plug-in

Bitbucket





Bitbucket-? — -, , . UI Bitbucket , . :





EventListener , endpoint — , . , . . , , Telegram- — Pull Request Hook. — . :





Interface





Description





PostRepositoryHook<T extends RepositoryHookRequest>





,





PreRepositoryHook<T extends RepositoryHookRequest>





,





RepositoryMergeCheck





,





generic — , .





.





, . , Bitbucket -, .





, , — .





Trigger





Corresponding request type





BRANCH_CREATE





BranchCreationHookRequest





BRANCH_DELETE





BranchDeletionHookRequest





FILE_EDIT





FileEditHookRequest





MERGE





MergeHookRequest





PULL_REQUEST_MERGE





PullRequestMergeHookRequest





REPO_PUSH





RepositoryPushHookRequest





TAG_CREATE





TagCreationHookRequest





TAG_DELETE





TagDeletionHookRequest





hook .





Pull Request Merge Check





— . ( ) : you shall not pass! ( , ). .





- — , , , . , , : «, , , -, , , , , , - ».





— . , Gradle-, .





, , , , pull request.





MergeCheck.





RepositoryMergeCheck, preUpdate. . context request , Git flow, , .









Bitbucket- , Bitbucket-. Atlassian ORM — active objects. , DTO- — , Todo.





Activebject dto. , , .





Money — , , UI .





Marketplace





, .





vendor, , . , Atlassian — .









, , Altassian-. Atlassian — , . Atlassian:





— https://github.com/GSkoba/bitbucket-plugin . , - , Bitbucket- , .





MoneyDay - -. : https://youtu.be/lZBF1QV4ChE.  





. , , . :) 








All Articles