我已经成功创建了我的第一个OmniAuth策略并将其打包为gem。我将它添加到GitLab中的Gemfile并运行bundle install --path vendor/bundle --no-deployment
,它安装了gem。
接下来,我通过复制GitHub的部分并使用我们自己的值完成它来更新gitlab.yml文件。
根据https://github.com/gitlabhq/gitlabhq/blob/5-3-stable/doc/install/installation.md的GitLab参考说明的指示
然后我将两个图像文件添加到vendor/assets/images/authbuttons
目录,全部小写,格式为“strategyname_32.png”和“strategyname_64.png”。
最后我重新启动了GitLab,在登录页面上,我现在看到了一个新的提供程序的按钮(可以正常工作!)但是我上传的图像不用于按钮,而是使用了基本的灰色按钮
我在任何日志中找不到任何指示它无法找到图像文件的内容,并且我尝试使用各种情况重命名文件,因为这是在Ubuntu系统上。
我还执行了rake assets:precompile RAILS_ENV=production
,但这似乎没有什么区别。
我是否遗漏了一些东西让我们的图片代替登录页面上的基本HTML按钮来表示此提供程序?我没有看到我在说明书中遗漏的任何步骤。
答案 0 :(得分:1)
事实证明,这是“按设计”,其他提供程序加载为HTML按钮,并且不使用安装说明中提到的路径vendor/assets/images/authbuttons
中放置的图形。这是因为只有default_providers()
中app/helpers/oauth_helper.rb
function中列出的提供商才会使用vendor/assets/images/authbuttons
目录中的图片显示在登录页面上。
因此,为了成功使用我的自定义omniauth提供程序并在GItLab登录页面上为登录链接提供图形元素,我执行了以下操作:
sudo service gitlab stop
vendor/assets/images/authbuttons
目录default_providers()
文件的app/helpers/oauth_helper.rb
函数中的默认提供程序之一config/gitlab.yml
client_id
和client_secret
Gemfile
中为我的提供商添加了一个部分
sudo -u git -H bundle install --without development test postgres --path vendor/bundle --no-deploy
文件sudo -u git -H rake assets:precompile RAILS_ENV=production
sudo service gitlab start