es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Gancho del repositorio de Bitbucket: crear una solicitud de extracción con el origen y destino en Java.

Quiero desarrollar un hook que fusionará automáticamente una rama (siempre la misma) en la rama principal cuando algo suceda. Esto debería suceder porque hay algunas diferencias extrañas cuando se abren solicitudes de extracción y descubrimos que esta fusión es la solución.

Así que estoy trabajando con la API de BitBucket Server y encontré la clase PullRequestCreateRequest y la interfaz PullRequestService.

Esto es lo que tengo por ahora:

if (MI_CONDICIÓN)
        {
            PullRequestImpl pullRequest = new PullRequestImpl(); //clase que implementa PullRequestService 

        PullRequestCreateRequest prCreate = new PullRequestCreateRequest.Builder()
                        .title("Fusión Automática de Rama Foo en la Principal")
                        .description("blablabla")
                        .repository(request.getRepository()) //desde la cabecera del método
                        //.fromBranch("MiRama") AYUDA por favor
                        .toBranchId("master")                            
                        .build(); 

        pullRequest.create(prCreate);
        pullRequest.merge(prCreate);
    } 

Mi problema es que no sé cómo especificar mi rama de origen. Busqué en la documentación, pero solo encontré algunos RefIds, etc. ¿Alguien tiene una idea?

Por cierto, creo la PR primero porque no se permite fusionar directamente en la rama principal y no puedo cambiar esto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para especificar la rama de origen de su PullRequest, puede utilizar el método fromBranch(Ref ref) de la clase PullRequestCreateRequest.Builder. Necesita pasar un objeto Ref a este método, que representa su rama de origen. Puede crear un objeto Ref utilizando la clase RefBuilder así:

    Ref ref = new RefBuilder()
            .id("refs/heads/MyBranch")
            .build();
    

    Luego, puede pasar este objeto Ref al método fromBranch() así:

    PullRequestCreateRequest prCreate = new PullRequestCreateRequest.Builder()
            .title("Automatic Merge Branch Foo Into Master")
            .description("blablabla")
            .repository(request.getRepository())
            .fromBranch(ref) // pase aquí el objeto Ref
            .toBranchId("master")                            
            .build();
    

    Esto debería permitirle especificar la rama de origen para su PullRequest. Tenga en cuenta que la rama de origen debe existir en su repositorio y debe estar enviada a BitBucket antes de que pueda crear un PullRequest utilizando ella.

Comments are closed.