BolĂ­grafos locos: como escribimos complementos para la plataforma Atlassian

Hola a todos, soy un desarrollador de Java en YuMoney.





En este artículo quiero hablar sobre qué beneficio se puede obtener optimizando las herramientas existentes en la empresa, por qué merece la pena hacerlo y por dónde es mejor empezar. Usando la pila de Atlassian y el complemento Bitbucket que usamos en UMoney como ejemplo, contaré y mostraré todo en detalle. ¥Vamos!





Si recuerdas el desarrollo del software en los años 70 y 80, te vienen a la mente computadoras y mĂĄquinas gigantes en las que los ingenieros colocaban tarjetas perforadas. Hubo instrucciones, se ejecutaron, se obtuvo algĂșn tipo de resultado. Y, por supuesto, en un sistema de este tipo no habĂ­a registro, ni CI / CD, ni contenedorizaciĂłn.





Una fotografĂ­a del pasado reciente
Una fotografĂ­a del pasado reciente

Con el tiempo, el desarrollo se desarrolló y, a principios de la década de 2000, ya recopilamos archivos de guerra (si hablamos de la pila de Java) y los implementamos de esta manera, CI / CD comenzó a surgir.





El desarrollo moderno ya es una pila de tecnologĂ­a gigante.





Zoo de herramientas
Zoo de herramientas

. , , , 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.





La revisiĂłn de cĂłdigo es el proceso de revisar el cĂłdigo, encontrar errores en Ă©l y cĂłmo solucionarlos.
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 depuraciĂłn
Debug mode

, UI — . , UI , , .





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





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





Ejemplo de complemento

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