2016-05-24 13 views
15

Stiamo lavorando per integrare GitLab (edizione aziendale) nei nostri strumenti, ma una cosa che è ancora nella nostra lista desideri è creare una richiesta di fusione in GitLab tramite una riga di comando (o batchfile o simile, per quella materia). Vorremmo integrarlo nei nostri strumenti. La ricerca qui e sul web mi porta a credere che questo non sia possibile con GitLab nativo, ma che abbiamo bisogno di strumenti aggiuntivi per questo.Come creare una richiesta di fusione GitLab tramite riga di comando

Sono corretto? E che tipo di strumenti vorrei usare per questo?

risposta

4

Non è supportato in modo nativo, ma non è difficile da usare insieme. L'API gitlab supporta l'apertura MR: https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/merge_requests.md#create-mr

+0

Grazie, questo mi ha messo sulla strada giusta. Credo. Avevo già visto l'API ma non sono riuscito a trovare un modo per accedervi.Il tuo link mi ha messo in pista e ho trovato un link alla domanda di qualcuno che voleva creare un nuovo progetto dalla riga di comando [link] (https://forum.gitlab.com/t/create-a-new-project -in-a-group-using-api/1552) – patrick

+0

Se stai guardando questa risposta. Controlla la mia risposta qui sotto per un programma di utilità che ho creato per farlo. – Vishwanath

1

A partire da ora, GitLab purtroppo non supporta questo, tuttavia l'ho visto di recente sul loro issue tracker. Sembra che uno possa aspettarsi uno "strumento nativo" nei prossimi mesi.

GitLab ha twittato circa numa08/git-gitlab un po 'di tempo fa, quindi immagino che valga la pena provarlo.

4

È possibile utilizzare la seguente utilità.

Disclaimer: L'ho sviluppato.

https://github.com/vishwanatharondekar/gitlab-cli

E 'sviluppato in javascript. È possibile creare una richiesta di unione usando questo.

Alcune delle caratteristiche che ha sono.

  1. Il ramo di base è facoltativo. Se il ramo base non è fornito. Il ramo attuale viene utilizzato come ramo base.
  2. Il ramo di destinazione è facoltativo. Se il ramo target non viene fornito, verrà utilizzato il ramo predefinito del repository in gitlab.
  3. La pagina di richiesta di pull creata verrà aperta automaticamente al termine della creazione.
  4. Se il titolo non è supportato con il valore di opzione -m. Sarà preso dal redattore sul posto aperto. La prima riga è considerata come titolo.
  5. Nell'editor aperto terza riga in poi prende come descrizione.
  6. L'elenco di etichette separate da virgola può essere fornito con la sua opzione.
  7. Supporta CI.
  8. È possibile fornire configurazioni specifiche del repository.
0

Io uso https://github.com/mdsb100/cli-gitlab

sto creando il MR dall'interno di un contenitore finestra mobile gitlab CI basato su Linux alpina, così ho includono il comando install prima-script (che potrebbe anche essere inclusi nella vostra immagine). Tutti i comandi nel seguente file .gitlab-ci.yml sono rilevanti anche per il normale utilizzo della riga di comando (purché sia ​​installato cli-gitlab npm).

variables: 
    TARGET_BRANCH: 'live' 
    GITLAB_URL: 'https://your.gitlab.net' 
    GITLAB_TOKEN: $PRIVATE_TOKEN #created in user profile & added in project settings 
before-script: 
    -apk update && apk add nodejs && npm install cli-gitlab -g 
script: 
    - gitlab url $GITLAB_URL && gitlab token $GITLAB_TOKEN 
    - 'echo "gitlab addMergeRequest $CI_PROJECT_ID $CI_COMMIT_REF_NAME \"$TARGET_BRANCH\" 13 `date +%Y%m%d%H%M%S`"' 
    - 'gitlab addMergeRequest $CI_PROJECT_ID $CI_COMMIT_REF_NAME "$TARGET_BRANCH" 13 `date +%Y%m%d%H%M%S` 2> ./mr.json' 
    - cat ./mr.json 

Ciò eco vero se la richiesta di unione esiste già, ed eco il risultato JSON del nuovo MR se riesce a creare uno (anche il salvataggio in un file mr.json).

Problemi correlati