zoukankan      html  css  js  c++  java
  • composer如何自动验证并获取gitlab的私有库?

        近期购买了Laravel的nova以后,需要对它的核心代码做一些修改,为方便与团队其他成员分享,以及在nova官方库更新后方便对差异管理。便将nova库挂在自己的gitlab,通过composer直接引用。
        gitlab上全是私有库,composer获取需要认证,在本地测试时输入用户名/密码过认证倒不打紧,生产服务器上布署就有问题了,由于是自动布署,必须是全自动才行。经过一番折腾,composer可以通过配置gitlab的Private Token完成验证,获取到私有库,不用再输用户名密码。
        为方便描述操作过程。这里以官方包laravel/nova为例,我将laravel/nova放到自已的gitlab上,路径为https://git.papamk.com/xxx/nova,并设置为私有库。我们的目标是composer可以直接获取该包而不用输入密码。
    配置过程
    1. 生成Private Token
      在gitlab上,在`User Settings`中找到`Access Tokens`,见下图:
        ⚠️⚠️⚠️:生成的token只显示一次,记得保存下来,后面要用到。 
    gitlab操作图
    2.配置composer的认证信息
      编辑~/.composer/auth.json(如果没有该文件,就直接创建) 
     1 {
     2     "bitbucket-oauth": {},
     3     "github-oauth": {},
     4     "gitlab-oauth": {
     5     },
     6     "gitlab-token": {
     7       "git.papamk.com": "<你的Private Token>"
     8     },
     9     "http-basic": {},
    10     "gitlab-domains":["git.papamk.com"]
    11 }

    注意点:
    • 除非你使用的是gitlab.com,否则你应该将gitlab的域名添加到gitlab-domains中; 

    3. 编辑 composer.json

    {
        // ...省略其他部分
        "repositories": [
          {
            "type": "gitlab",
            "url": "https://git.papamk.com/xxx/nova"
          }
        ],
        "require": {
            // ...省略其他包
            "laravel/nova": "dev-master",
        }
    } 
      重点:
    • type:必须是gitlab
    • 包名:官方包包名为laravel/nova,这里仍然要使用laravel/nova,不能使用xxx/nova 

      到此大功告成,运行下composer install或者composer udpate试试。
    其他问题
      有可能会出现配置正确,但是包的获取是直接从本地cache中直接读取的问题。这个时候,直接删除~/.composer/cache,再试一下即可。 
  • 相关阅读:
    关于接口测试的一些个人总结
    PMP学习考试回顾与心得
    RHCE第2课
    RHCE第1课
    kafka中对于zookeeper的理解和leader选举过程
    基于python的Selenium使用
    安装python第三方包的几种方式
    Vi命令下几种容易混淆的插入方式
    python单元测试框架unittest
    关于SQL子查询的一个问题
  • 原文地址:https://www.cnblogs.com/pheye/p/10479439.html
Copyright © 2011-2022 走看看