cómo leer las twigs BitBucket / Stash y sus tickets JIRA vinculados con Java

Quiero leer las twigs bitbucket / stash y su respetado problema Jira, cuando lo estaba buscando y encontré Atlassian APIs .

No pude encontrar ejemplos adecuados en esto, como cómo me conecto al server de bitbucket, obtengo información de cualquier proyecto, y leí las twigs de ese proyecto, y también si hay algún problema de Jira relacionado con la sucursal.

Cualquier ayuda o dirección sería genial.

Estoy buscando un ejemplo de Java para esto.

He encontrado una forma posible de interactuar con la API y get los repositorys y la información del usuario de Bitbucket. Sin embargo, tuve que usar la authentication OAuth que implicaba una callback del browser. Esto puede no ser muy conveniente para una aplicación independiente.

Así que aquí está lo que hice:

  1. Creé un consumidor OAuth en mi count BitBucket. Esto está bastante bien descrito en esta página: https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html . Después de hacer esto, tenía un consumidor con una key y un secreto.

  2. Ejecuté una consulta GET directamente en el browser en este enlace: https://bitbucket.org/site/oauth2/authorize?client_id= {client_id} & response_type = code. El {client_id} es en realidad la key generada en el elemento anterior 1. Esto me lleva a una página donde podría confirmar las concesiones a la aplicación OAuth. Después de confirmar las concesiones, la página del browser se networkingirige a una list de páginas como esta: http://giltest.org/?code=LcY6FmeyvjqM2xnTyN . El código "LcY6FmeyvjqM2xnTyN" es el código que se usará para generar el código de autorización en el siguiente paso.

  3. Ahora generamos el código de autorización que permite acceder a la API REST de BitBucket. He creado un código Java para eso en un proyecto de Maven. Vea a continuación para get más detalles sobre el pom.xml. Usando la biblioteca de Unirest , he creado estos methods que recuperan el token de acceso:

acceso recuperación de token

public JsonNode accessToken(String clientId, String secret, String code) throws UnirestException { return Unirest.post("https://bitbucket.org/site/oauth2/access_token").basicAuth(clientId, secret) .field("grant_type", "authorization_code").field("code", code) .asJson().getBody(); } 

La respuesta de este método contendrá el token de acceso en JSON:

 {"access_token":"xetOO4xZU-xxxxxxxx--LRmbQrmBkDfHIKfE1vz1ZEGnbUyt5UI31ErKojnecuGWxxxxxxxxxx=","refresh_token":"jbad7ajwVWxxxxx","scopes":"webhook snippet:write issue:write pullrequest:write project:write team:write account:write","token_type":"bearer","expires_in":3600} 

Puedes extraer el token directamente con este método:

 public String accessTokenExtract(String clientId, String secret, String code) throws UnirestException { return Unirest.post("https://bitbucket.org/site/oauth2/access_token").basicAuth(clientId, secret) .field("grant_type", "authorization_code").field("code", code) .asJson().getBody().getObject().get("access_token").toString(); } 
  1. Después de esto, puede extraer el token de acceso de JSON y usarlo en una request. Consulte la sección "Realizar requestes" en esta página . Aquí hay un ejemplo del método de código Java que obtiene la información del usuario de Bitbucket:

Mostrar request de información del usuario

 public String showUserInformation(String authorizationCode) throws UnirestException { return Unirest.get("https://api.bitbucket.org/2.0/user") .header("Authorization", String.format("Bearer %s", authorizationCode)).asString().getBody(); } 

Mostrar repositorys

 public String listRepositories(String authorizationCode) throws UnirestException { return Unirest.get("https://api.bitbucket.org/2.0/repositories") .header("Authorization", String.format("Bearer %s", authorizationCode)).asString().getBody(); } 

Puede encontrar más información sobre la API REST aquí:

https://developer.atlassian.com/bitbucket/api/2/reference/resource/

Solo como reference: Aquí está el pom.xml de mi proyecto de juguetes:

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.fernandes</groupId> <artifactId>bitbucket.experiments</artifactId> <version>1.0-SNAPSHOT</version> <properties> <junit.version>5.0.0-M4</junit.version> <bitbucket.version>4.0.0-m27</bitbucket.version> </properties> <repositories> <repository> <id>Atlassian</id> <url>https://maven.atlassian.com/content/repositories/atlassian-public</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.8.0</version> <scope>test</scope> </dependency> </dependencies> </project>