近期购买了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. [翻译]NUnit---TearDown and SetUpFixture and Test Attributes(二十)

    TearDownAttribute (NUnit 2.0 / 2.5) 本特性在TestFixture内部使用,每个测试方法执行后调用的方法集.也可以在SetUpFixture中使用,在同一命名空间或 ...

  2. asp.net缓存使用介绍

    介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的cache管理,这里我比较喜欢cac ...

  3. asp.net——公共帮助类

    在项目开发中公共帮助类是必不可少的,这里记录一些自己摘录或自己编写的帮助类. 64位编码与解码: #region URL的64位编码 /// <summary> /// URL的64位编码 ...

  4. [ASP.NET]JQuery直接调用asp.net后台WebMethod方法

    在项目开发碰到此类需求,特此记录下经项目验证的方法总结. 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. [WebMethod] 命名空间 1.无参数的方法调用 注意:方 ...

  5. .netcore部署centos

    前言:最近公司有个项目用 .netcore开发的项目,然后闲的没事就研究如果发布到Linux系统上 需要安装的插件以及支撑架构 1.dotnetSDK 2.jexus Jexus 是Linux平台上 ...

  6. wpf ,只能窗口调整高度,并且设定最小值。

    MaxWidth="900" WindowStyle="ToolWindow" ResizeMode="CanResize" WindowS ...

  7. 基于MVC框架Aspose.Words打印到Word中写法

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726 //前端打印写法 @{ ViewBag.Title = " ...

  8. 因子和(luoguP1593)(等比数列求和+逆元)

    输入两个正整数\(a\)和\(b\),求\(a\cdot b\)的因子和.结果太大,只要输出它对9901的余数. Input 仅一行,为两个正整数\(a\)和\(b\)(\(0≤a,b≤5000000 ...

  9. jzoj5832. 【省选模拟8.20】Emotional Flutter

    tj:我們發現,每一次走過的步長都是k,設當前走的步數是x,走到了一個白條 那麼,每一次走就是把所有黑條都向前移k位,我們可以考慮把所有黑條的左邊界不斷的向前移動k,直到下一次移動時,其左邊界小於0, ...

  10. Math-645. Set Mismatch

    The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...