近期购买了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只显示一次,记得保存下来,后面要用到。 

2.配置composer的认证信息
  编辑~/.composer/auth.json(如果没有该文件,就直接创建) 
 {
"bitbucket-oauth": {},
"github-oauth": {},
"gitlab-oauth": {
},
"gitlab-token": {
"git.papamk.com": "<你的Private Token>"
},
"http-basic": {},
"gitlab-domains":["git.papamk.com"]
}

注意点:
  • 除非你使用的是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,再试一下即可。 

composer如何自动验证并获取gitlab的私有库?的更多相关文章

  1. composer使用gitlab搭建私有库

    { "repositories": [ { "type": "vcs", // 使用gitlab固定 "url": &q ...

  2. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  3. tp框架之自动验证表单

    tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...

  4. thinkphp自动验证中的静态验证和动态验证和批量验证

    1.静态定义 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 举例说明,我们在模型类里面定义了$_validate属性如下: class UserModel extends Model ...

  5. <转>thinkphp自动验证无效的问题

    新手入门thinkphp,试用自动验证表单输入数据功能,却发现怎么都不能调用自动验证,自动验证无效,原因竟是一个小细节的疏忽,学习一定要细心啊! Action方法: IndexAction下的adds ...

  6. ThinkPHP3.1快速入门(12)自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  7. ThinkPHP自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  8. ThinkPHP第二十四天(JQuery常用方法、TP自动验证)

    ---恢复内容开始--- 1.JQuery常用方法 A:JS中可以用json格式数据当做数组使用,如var validate={username:false,pwd:false,pwded:false ...

  9. ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

    原文:ThinkPHP 自动创建数据.自动验证.自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name']; //$password=$_POST['password ...

随机推荐

  1. linux系统编程之信号(四):alarm和可重入函数

    一,alarm() 在将可重入函数之前我们先来了解下alarm()函数使用: #include <unistd.h> unsigned int alarm(unsigned int sec ...

  2. TCP实现一个简易的聊天室 (Unity&&C#完成)

    效果展示 TCP Transmission Control Protocol 传输控制协议 TCP是面向连接的流模式(俗称:网络流).即传输数据之前源端和终端建立可靠的连接,保证数据传输的正确性. 流 ...

  3. C# WPF 登录多线程中 “调用线程无法访问对象,因为另一个线程拥有该对象“

    造成这个错误的原因很多,以下是我遇到的 我的思路,开启一个线程A登录.因为服务器响应登录成功需要在主线程做一些操作,我这边需要用到主线程的窗口对象,我把窗口对象传到线程 A,直接用实例方法会有这个错误 ...

  4. C# 灵活用法拾遗

    1.switch case : ; switch (a) { : Console.WriteLine("一"); break; : : Console.WriteLine(&quo ...

  5. 【cocos2d-x 仙凡奇缘-网游研发(1) 登录&注册】

    转载请注明出处:http://www.cnblogs.com/zisou/p/xianfan01.html 公司的项目总算告一段落了,年前憋到年后,总算要上线了,所以我也有了时间来搞我自己的游戏项目了 ...

  6. 《JavaScript高级程序设计》5.5 Function类型

    5.5 Function类型 函数实质上是对象, 每个函数都是Function类型的实例, 并且都和其他引用类型一样具有属性和方法. 因此函数名实际上也是一个指向函数对象的指针, 不会与某个函数绑定. ...

  7. spring jdbc批量插入

    http://blog.csdn.net/fyqcdbdx/article/details/7366439

  8. day 113 爬虫框架

    基础配置

  9. javaWeb登录注册页面

    简单的登陆注册页面 1.配置JDBC驱动连接数据库 2. 配置struts2框架 3. 利用1 2完成登录页面, 注意做到不耦合,即servlet Api和控制器完全脱离) 4. 利用1 2 制作注册 ...

  10. Weblogic有免费的License了

    分类: 系统运维 曾几何时, 为了找一个不限IP, 不限CPU, 不限时间的Weblogic License, 需要翻遍整个互联网, 这种日子一去不复返了~~~~~ 几个月前, 听到Oracle收购B ...