future-architect / redmine_gitlab_adapter

'This is a Gitlab Adapter plugin for Redmine'
MIT License
15 stars 5 forks source link

gitlab: error during get default branch: undefined method `unpack1' for "/":String #4

Open kohdie opened 1 year ago

kohdie commented 1 year ago

現象

Redmineに本プラグインを設定し、プロジェクトのリポジトリに設定したところ以下のようなエラーが発生しました。 Redmineでは500 Internal Server Error画面となりました。 エラーを解消し、GitLabと正常に連携するにはどうすべきでしょうか。

エラーログ

gitlab: error during get default branch: undefined method `unpack1' for "/":String
Completed 500 Internal Server Error in 12ms (ActiveRecord: 4.3ms)

NoMethodError (undefined method `unpack1' for "/":String):
  plugins/redmine_gitlab_adapter/lib/redmine/scm/adapters/gitlab_adapter.rb:136:in `block in entries'
  plugins/redmine_gitlab_adapter/lib/redmine/scm/adapters/gitlab_adapter.rb:135:in `step'
  plugins/redmine_gitlab_adapter/lib/redmine/scm/adapters/gitlab_adapter.rb:135:in `entries'
  plugins/redmine_gitlab_adapter/app/models/repository/gitlab.rb:90:in `scm_entries'
  app/models/repository.rb:207:in `entries'
  app/controllers/repositories_controller.rb:88:in `show'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

バージョン情報

Environment Version
Redmine 3.4.13
Redmine Gitlab Adapter 0.2.1
Ruby 2.3.8-p459
Rails 4.2.11.1
Git 2.14.5

補足情報

GitLabのデフォルトブランチは「main」であり「master」ブランチは存在しません。

komatsuyuji commented 1 year ago

プロジェクト→設定→リポジトリの画面の「URL」と「Root URL」の値はどの感じで設定していますか?

kohdie commented 1 year ago

以下のように設定しています。

key value
URL https:////.git
Root URL https://
kohdie commented 1 year ago

調査したところ、内部で使用しているgem gitlabが4.14からruby2.3を非サポートにしたことが原因のように見えましたがいかがでしょうか https://github.com/NARKOZ/gitlab/issues/550

環境更新して再度セットアップするよう調整いたします。お騒がせしました。

komatsuyuji commented 1 year ago

https://rubygems.org/gems/gitlab/versions/4.14.0

必要RUBYバージョン:
>= 2.3

と書いてありますが、 こちらはruby 2.6.9p207を使っています。

komatsuyuji commented 1 year ago

https://github.com/future-architect/redmine_gitlab_adapter/blob/master/lib/redmine/scm/adapters/gitlab_adapter.rb#L110 もしこの辺がbugだったら、GIT_DEFAULT_BRANCH_NAMESをGITLAB_DEFAULT_BRANCH_NAMESに直してください。