Merge Request で Web 上からマージをした際にフックで蹴られると UI では Accept Merge Request
のボタンがグルグルするだけで返ってこなくなる。実際には応答が返ってきているのだけど、javascript でエラーが発生してメッセージの書き換えに失敗している。せっかくマージリクエストの運用を始めようと思ったところでこれは辛い。Issue もあって Bug のラベルが貼られているけど 2 週間経っても動きがない。辛い。
辛いのでチラ見してみたら直せそうだったのでやってみた。
diff --git a/app/assets/javascripts/merge_request_widget.js.es6 b/app/assets/javascripts/merge_request_widget.js.es6 index 56c87af..f922a50 100644 --- a/app/assets/javascripts/merge_request_widget.js.es6 +++ b/app/assets/javascripts/merge_request_widget.js.es6 @@ -101,7 +101,7 @@ urlSuffix = deleteSourceBranch ? '?deleted_source_branch=true' : ''; return window.location.href = window.location.pathname + urlSuffix; } else if (data.merge_error) { - return this.$widgetBody.html("<h4>" + data.merge_error + "</h4>"); + return $('.mr-widget-body').html("<h4>" + data.merge_error + "</h4>"); } else { callback = function() { return merge_request_widget.mergeInProgress(deleteSourceBranch);
js を反映するために assets を反映。この際にパーミッションのエラーが出るので一時的に変えておく。
$ cd /opt/gitlab/embedded/service/gitlab-rails/public $ chmod 777 assets
assets の作り直し。
$ gitlab-rake assets:clean assets:precompile $ gitlab-ctrl restart
権限を戻す
$ chmod 755 assets
フックから返ってくるのは html というよりプレーンテキストであることが多いと思うので <h4>
じゃなくて <pre>
の方が良いと思う。
Merge Request を出したいのだけど、出し方をまだ勉強してないのでひとまずここまで。Issue に進展がなければやってみる。