标签 Github 下的文章

GitHub 被收购导致一些用户去寻找这个流行的代码仓库的替代品。这里有一些你可以考虑一下。

也许你是少数一些没有注意到的人之一,就在之前,微软收购了 GitHub。两家公司达成了共识。微软在近些年已经变成了开源的有力支持者,而 GitHub 从成立起,就已经成为了大量的开源项目的实际代码库。

然而,最近发生的这次收购可能会带给你一些苦恼。毕竟公司的收购让你意识到了你的开源代码放在了一个商业平台上。可能你现在还没准备好迁移到其他的平台上去,但是至少这可以给你提供一些可选项。让我们找找网上现在都有哪些可用的平台。

选择之一: GitHub

严格来说,这是一个合格的选项。GitHub 历史上没有什么失信的地方,而且微软后来也一直笑对开源。把你的项目继续放在 GitHub 上,保持观望没有什么不可以。它现在依然是最大的软件开发的网络社区,同时还有许多对于问题追踪、代码审查、持续集成、通用的代码管理等很有用的工具。而且它还是基于 Git 的,这是每个人都喜欢的开源版本控制系统。你的代码还是你的代码。如果没有出现什么问题,那保持原状是没错的。

选择之二: GitLab

GitLab 是考虑替代代码库平台时的主要竞争者。它是完全开源的。你可以像在 GitHub 一样把你的代码托管在 GitLab,但你也可以选择在你自己的服务器上自行托管自己的 GitLab 实例,并完全控制谁可以访问那里的所有内容以及如何访问和管理。GitLab 与 GitHub 功能几乎相同,有些人甚至可能会说它的持续集成和测试工具更优越。尽管 GitLab 上的开发者社区肯定比 GitHub 上的开发者社区要小,但这并没有什么。你可能会在那里的人群中找到更多志同道合的开发者。

选择之三: Bitbucket

Bitbucket 已经存在很多年了。在某些方面,它可以作为 GitHub 未来的一面镜子。Bitbucket 八年前被一家大公司(Atlassian)收购,并且已经经历了一些变化。它仍然是一个像 GitHub 这样的商业平台,但它远不是一个创业公司,而且从组织上说它的基础相当稳定。Bitbucket 具有 GitHub 和 GitLab 上的大部分功能,以及它自己的一些新功能,如对 Mercurial 仓库的原生支持。

选择之四: SourceForge

SourceForge 是开源代码库的鼻祖。如果你曾经有一个开源项目,Sourceforge 就是那个托管你的代码并向其他人分享你的发布版本的地方。它迁移到 Git 版本控制用了一段时间,它有一些商业收购和再次收购的历史,以及一些对某些开源项目糟糕的捆绑决策。也就是说,SourceForge 从那时起似乎已经恢复,该网站仍然是一个有着不少开源项目的地方。然而,很多人仍然感到有点受伤,而且有些人并不是很支持它的平台货币化的各种尝试,所以一定要睁大眼睛。

选择之五: 自己管理

如果你想自己掌握自己项目的命运(除了你自己没人可以指责你),那么一切都由自己来做可能对你来说是最佳的选择。无论对于大项目还是小项目,都是好的选择。Git 是开源的,所以自己托管也很容易。如果你想要问题追踪和代码审查功能,你可以运行一个 GitLab 或者 Phabricator 的实例。对于持续集成,你可以设置自己的 Jenkins 自动化服务实例。是的,你需要对自己的基础架构开销和相关的安全要求负责。但是,这个设置过程并不是很困难。所以如果你不想自己的代码被其他人的平台所吞没,这就是一种很好的方法。

选择之六:以上全部

以下是所有这些的美妙之处:尽管这些平台上有一些专有的选项,但它们仍然建立在坚实的开源技术之上。而且不仅仅是开源,而是明确设计为分布在大型网络(如互联网)上的多个节点上。你不需要只使用一个。你可以使用一对……或者全部。使用 GitLab 将你自己的设施作为保证的基础,并在 GitHub 和 Bitbucket 上安装克隆存储库,以进行问题跟踪和持续集成。将你的主代码库保留在 GitHub 上,但是出于你自己的考虑,可以在 GitLab 上安装“备份”克隆。

关键在于你可以选择。我们能有这么多选择,都是得益于那些非常有用而强大的项目之上的开源许可证。未来一片光明。

当然,在这个列表中我肯定忽略了一些开源平台。方便的话请补充给我们。你是否使用了多个平台?哪个是你最喜欢的?你都可以在这里说出来!


via: https://opensource.com/article/18/8/github-alternatives

作者:Jason van Gumster 选题:lujun9972 译者:dianbanjiu 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识。

如果你是一个开发者,那你应该熟悉许多开发工具。你已经花了多年时间来学习一种或者多种编程语言并打磨你的技巧。你可以熟练运用图形工具或者命令行工具开发。在你看来,没有任何事可以阻挡你。你的代码, 好像你的思想和你的手指一样,将会创建一个优雅的,完美评价的应用程序,并会风靡世界。

然而,如果你和其他人共同开发一个项目会发生什么呢?或者,你开发的应用程序变地越来越大,下一步你将如何去做?如果你想成功地和其他开发者合作,你定会想用一个分布式版本控制系统。使用这样一个系统,合作开发一个项目变得非常高效和可靠。这样的一个系统便是 Git。还有一个叫 GitHub 的方便的存储仓库,用来存储你的项目代码,这样你的团队可以检查和修改代码。

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识,可以让你的应用程序的开发可以提升到一个新的水平。我将在 Ubuntu 18.04 上进行演示,因此如果您选择的发行版本不同,您只需要修改 Git 安装命令以适合你的发行版的软件包管理器。

Git 和 GitHub

第一件事就是创建一个免费的 GitHub 账号,打开 GitHub 注册页面,然后填上需要的信息。完成这个之后,你就注备好开始安装 Git 了(这两件事谁先谁后都可以)。

安装 Git 非常简单,打开一个命令行终端,并输入命令:

sudo apt install git-all

这将会安装大量依赖包,但是你将了解使用 Git 和 GitHub 所需的一切。

附注:我使用 Git 来下载程序的安装源码。有许多时候,内置的软件管理器不提供某个软件,除了去第三方库中下载源码,我经常去这个软件项目的 Git 主页,像这样克隆:

git clone ADDRESS

“ADDRESS” 就是那个软件项目的 Git 主页。这样我就可以确保自己安装那个软件的最新发行版了。

创建一个本地仓库并添加一个文件

下一步就是在你的电脑里创建一个本地仓库(本文称之为 newproject,位于 ~/ 目录下),打开一个命令行终端,并输入下面的命令:

cd ~/
mkdir newproject
cd newproject

现在你需要初始化这个仓库。在 ~/newproject 目录下,输入命令 git init,当命令运行完,你就可以看到一个刚刚创建的空的 Git 仓库了(图1)。

 title=

图 1: 初始化完成的新仓库

下一步就是往项目里添加文件。我们在项目根目录(~/newproject)输入下面的命令:

touch readme.txt

现在项目里多了个空文件。输入 git status 来验证 Git 已经检测到多了个新文件(图2)。

 title=

图 2: Git 检测到新文件readme.txt

即使 Git 检测到新的文件,但它并没有被真正的加入这个项目仓库。为此,你要输入下面的命令:

git add readme.txt

一旦完成这个命令,再输入 git status 命令,可以看到,readme.txt 已经是这个项目里的新文件了(图3)。

 title=

图 3: 我们的文件已经被添加进临时环境

第一次提交

当新文件添加进临时环境之后,我们现在就准备好创建第一个 提交 commit 了。什么是提交呢?简单的说,一个提交就是你更改的项目的文件的记录。创建一个提交也是非常简单的。但是,为提交包含一个描述信息非常重要。通过这样做,你可以添加有关该提交包含的内容的注释,比如你对文件做出的何种修改。然而,在这样做之前,我们需要告知 Git 我们的账户,输入以下命令:

git config --global user.email EMAIL
git config --global user.name “FULL NAME”

“EMAIL” 即你的 email 地址,“FULL NAME” 则是你的姓名。

现在你可以通过以下命令创建一个提交:

git commit -m “Descriptive Message”

“Descriptive Message” 即为你的提交的描述性信息。比如,当你第一个提交是提交一个 readme.txt 文件,你可以这样提交:

git commit -m “First draft of readme.txt file”

你可以看到输出表明一个文件已经修改,并且,为 readme.txt 创建了一个新的文件模式(图4)

 title=

图4:提交成功

创建分支并推送至 GitHub

分支是很重要的,它允许你在项目状态间中移动。假如,你想给你的应用创建一个新的特性。为了这样做,你创建了个新分支。一旦你完成你的新特性,你可以把这个新分支合并到你的主分支中去,使用以下命令创建一个新分支:

git checkout -b BRANCH

“BRANCH” 即为你新分支的名字,一旦执行完命令,输入 git branch 命令来查看是否创建了新分支(图5)

 title=

图5:名为 featureX 的新分支

接下来,我们需要在 GitHub 上创建一个仓库。 登录 GitHub 帐户,请单击帐户主页上的“New Repository”按钮。 填写必要的信息,然后单击 “Create repository”(图6)。

 title=

图6:在 GitHub 上新建一个仓库

在创建完一个仓库之后,你可以看到一个用于推送本地仓库的地址。若要推送,返回命令行窗口(~/newproject 目录中),输入以下命令:

git remote add origin URL
git push -u origin master

“URL” 即为我们 GitHub 上新建的仓库地址。

系统会提示您,输入 GitHub 的用户名和密码,一旦授权成功,你的项目将会被推送到 GitHub 仓库中。

拉取项目

如果你的同事改变了你们 GitHub 上项目的代码,并且已经合并那些更改,你可以拉取那些项目文件到你的本地机器,这样,你系统中的文件就可以和远程用户的文件保持匹配。你可以输入以下命令来做这件事(~/newproject 在目录中),

git pull origin master

以上的命令可以拉取任何新文件或修改过的文件到你的本地仓库。

基础

这就是从命令行使用 Git 来处理存储在 GitHub 上的项目的基础知识。 还有很多东西需要学习,所以我强烈建议你使用 man gitman git-pushman git-pull 命令来更深入地了解 git 命令可以做什么。

开发快乐!

了解更多关于 Linux 的 内容,请访问来自 Linux 基金会和 edX 的免费的 Introduction to Linux课程。


via: https://www.linux.com/learn/intro-to-linux/2018/7/introduction-using-git

作者:Jack Wallen 选题:lujun9972 译者:distant1219 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过 GitLab 或 GitHub Pages 来提供一个 WordPress 镜像站点, 从而最小化安全问题。

很久以前,我为一个家庭成员建立了一个 WordPress 博客。如今有很多选择,但是当时如果你需要一个带有所见即所得的编辑器的基于 Web 的 CMS,那么就没什么像样的的选择了。而一切运行良好的不幸的副作用是随着时间的推移该博客产生了很多内容。这意味着我要经常更新 WordPress 以防止不断出现的漏洞。

因此,当我决定劝说家人切换到 Hugo 会相对容易,然后可以在 GitLab 上托管博客。但是尝试提取所有内容并将其转换为 Markdown 变成了一个巨大的麻烦。有自动脚本完成了 95% 的工作,但并不完美。手动更新所有帖子不是我想做的事情,所以最终,我放弃了试图移动博客。

最近,我又开始考虑这个问题,并意识到有一个我没有考虑过的解决方案:我可以继续维护 WordPress 服务器,但将其设置为发布静态镜像,并使用 GitLab Pages(或 GitHub Pages ,如果你喜欢的话)提供服务。这能让我自动化 Let’s Encrypt 证书续订并消除与托管 WordPress 站点相关的安全问题。然而,这意味着评论将无法使用,但在这种情况下感觉就像是一个小损失,因为博客没有收到很多评论。

这是我提出的解决方案,到目前为止似乎运作良好:

  • 托管 WordPress 站点中的 URL 没有链接到或来自其他任何地方,以减少它被利用的几率。在此例中,我们将使用 http://private.localconspiracy.com(即使此站点实际上是使用 Pelican 构建的)。
  • 将公共 URL https://www.localconspiracy.com 托管到 GitLab Pages 上
  • 添加 cron 任务,确定两个 URL 之间的最后构建日期何时不同。如果构建日期不同,则镜像 WordPress 版本。
  • 使用 wget 镜像后,将所有链接从“私有”更新成“公共”。
  • 运行 git push 来发布新内容。

这是我使用的两个脚本:

check-diff.sh (cron 每 15 分钟调用一次):

#!/bin/bash

ORIGINDATE="$(curl -v --silent http://private.localconspiracy.com/feed/ 2>&1|grep lastBuildDate)"
PUBDATE="$(curl -v --silent https://www.localconspiracy.com/feed/ 2>&1|grep lastBuildDate)"

if [ "$ORIGINDATE" !=  "$PUBDATE" ]
then
  /home/doc/repos/localconspiracy/mirror.sh
fi

mirror.sh

#!/bin/sh

cd /home/doc/repos/localconspiracy

wget \
--mirror \
--convert-links  \
--adjust-extension \
--page-requisites  \
--retry-connrefused  \
--exclude-directories=comments \
--execute robots=off \
http://private.localconspiracy.com

git rm -rf public/*
mv private.localconspiracy.com/* public/.
rmdir private.localconspiracy.com
find ./public/ -type f -exec sed -i -e 's|http://private.localconspiracy|https://www.localconspiracy|g' {} \;
find ./public/ -type f -exec sed -i -e 's|http://www.localconspiracy|https://www.localconspiracy|g' {} \;
git add public/*
git commit -m "new snapshot"
git push origin master

就是这些了!现在,当博客发生变化时,在 15 分钟内将网站镜像到静态版本并推送到仓库,这将在 GitLab Pages 中反映出来。

如果你想在本地运行 WordPress,这个概念可以进一步扩展。在这种情况下,你不需要服务器来托管你的 WordPress 博客。你可以在本机运行它。在这种情况下,你的博客不可能被攻击利用。只要你可以在本地运行 wget,就可以使用上面的方法在 GitLab Pages 上托管 WordPress 站点。

这篇文章最初发表于 Local Conspiracy。允许转载。


via: https://opensource.com/article/18/8/publish-wordpress-static-gitlab-pages-site

作者:Christopher Aedo 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Github 是一个存放着世界上最棒的一些软件项目的宝藏,这些软件项目由全世界的开发者无私贡献。这个看似简单,实则非常强大的平台因为大大帮助了那些对开发大规模软件感兴趣的开发者而被开源社区所称道。

这篇向导是对于安装和使用 GitHub 的的一个快速说明,本文还将涉及诸如创建本地仓库,如何链接这个本地仓库到包含你的项目的远程仓库(这样每个人都能看到你的项目了),以及如何提交改变并最终推送所有的本地内容到 Github。

请注意这篇向导假设你对 Git 术语有基本的了解,如推送、拉取请求(PR)、提交、仓库等等。并且希望你在 GitHub 上已注册成功并记下了你的 GitHub 用户名,那么我们这就进入正题吧:

1、在 Linux 上安装 Git

下载并安装 Git:

sudo apt-get install git

上面的命令适用于 Ubuntu 并且应该在所有最新版的 Ubuntu 上都能工作,它们在 Ubuntu 16.04 和 Ubuntu 18.04 LTS (Bionic Beaver)上都测试过,在将来的版本上应该也能工作。

2、配置 GitHub

一旦安装完成,接下去就是配置 GitHub 用户的详细配置信息。请使用下面的两条命令,并确保用你自己的 GitHub 用户名替换 user_name,用你创建 GitHub 账户的电子邮件替换 email_id

git config --global user.name "user_name"
git config --global user.email "email_id"

下面的图片显示的例子是如何用我的 GitHub 用户名:“akshaypai” 和我的邮件地址 “[email protected]” 来配置上面的命令。

Git config

3、创建本地仓库

在你的系统上创建一个目录。它将会被作为本地仓库使用,稍后它会被推送到 GitHub 的远程仓库。请使用如下命令:

git init Mytest

如果目录被成功创建,你会看到如下信息:

Initialized empty Git repository in /home/akshay/Mytest/.git/

这行信息可能随你的系统不同而变化。

这里,Mytest 是创建的目录,而 init 将其转化为一个 GitHub 仓库。将当前目录改为这个新创建的目录。

cd Mytest

4、新建一个 README 文件来描述仓库

现在创建一个 README 文件并输入一些文本,如 “this is git setup on linux”。README 文件一般用于描述这个仓库用来放置什么内容或这个项目是关于什么的。例如:

gedit README

你可以使用任何文本编辑器。我喜欢使用 gedit。README 文件的内容可以为:

This is a git repo

5、将仓库里的文件加入一个索引

这是很重要的一步。这里我们会将所有需要推送到 GitHub 的内容都加入一个索引。这些内容可能包括你第一次加入仓库的文本文件或者应用程序,也有可能是对已存在文件的一些编辑(文件的一个更新版本)。

既然我们已经有了 README 文件,那么让我们创建一个别的文件吧,如一个简单的 C 程序,我们叫它 sample.c。文件内容是:

#include<stdio.h>
int main()
{
printf("hello world");
return 0;
}

现在我们有两个文件了。READMEsample.c

用下面的命令将它们加入索引:

git add README
git add smaple.c

请注意 git add 命令能将任意数量的文件和目录加入到索引。这里,当我说 “索引” 的时候,我是指一个有一定空间的缓冲区,这个缓冲区存储了所有已经被加入到 Git 仓库的文件或目录。

6、将所作的改动加入索引

所有的文件都加好以后,你就可以提交了。这意味着你已经确定了最终的文件改动(或增加),现在它们已经准备好被上传到我们自己的仓库了。请使用命令:

git commit -m "some_message"

“some\_message” 在上面的命令里可以是一些简单的信息如“我的第一次提交”或者“ 编辑了readme 文件”,等等。

7、在 GitHub 上创建一个仓库

在 GitHub 上创建一个仓库。请注意仓库的名字必须和你本地创建的仓库的名字严格一致。在这个例子里是 “Mytest”。请首先登录你的 GitHub 账户 。点击页面右上角的 “+” 符号,并选择“create nw repository”。如下图所示填入详细信息,点击 “create repository”。

Creating a repository on GitHub

一旦创建完成,我们就能将本地的仓库推送到 GitHub 你名下的仓库,用下列命令连接 GitHub 上的仓库:

请注意:请确保在运行下列命令前替换了路径中的 “user\_name” 和 “Mytest” 为你的 GitHub 用户名和目录名!
git remote add origin https://github.com/user\_name/Mytest.git>

8、将本地仓库里的文件推送到 GitHub 仓库

最后一步是用下列的命令将本地仓库的内容推送到远程仓库(GitHub):

git push origin master

当提示登录名和密码时键入登录名和密码。

下面的图片显示了步骤5到步骤8的流程

Pushing files in local repository to GitHub repository

上述将 Mytest 目录里的所有内容(文件)推送到了 GitHub。对于以后的项目或者创建新的仓库,你可以直接从步骤 3 开始。最后,如果你登录你的 GitHub 账户并点击你的 Mytest 仓库,你会看到这两个文件:READMEsample.c 已经被上传并像如下图片显示:

Content uploaded to Github


via: https://www.howtoforge.com/tutorial/install-git-and-github-on-ubuntu/

作者:Akshay Pai 选题:lujun9972 译者:DavidChenLiang 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近在开源社区发生了很多事情。首先,微软收购了 GitHub,然后人们开始寻找 GitHub 替代套餐,甚至在 Linus Torvalds 发布 Linux Kernel 4.17 时没有花一点时间考虑它。好吧,如果你一直关注我们,我认为你知道这一切。

但是,如今,GitLab 做出了一个明智的举措,为教育机构和开源项目免费提供高级套餐。当许多开发人员有兴趣将他们的开源项目迁移到 GitLab 时,没有更好的时机来提供这些了。

GitLab 的高级套餐现在对开源项目和教育机构免费

GitLab Logo

在今天(2018/6/7)发布的博客中,GitLab 宣布其旗舰和黄金套餐现在对教育机构和开源项目免费。虽然我们已经知道为什么 GitLab 做出这个举动(一个完美的时机!),但他们还是解释了他们让它免费的动机:

我们让 GitLab 对教育机构免费,因为我们希望学生使用我们最先进的功能。许多大学已经运行了 GitLab。如果学生使用 GitLab 旗舰和黄金套餐的高级功能,他们将把这些高级功能的经验带到他们的工作场所。

我们希望有更多的开源项目使用 GitLab。GitLab.com 上的公共项目已经拥有 GitLab 旗舰套餐的所有功能。像 GnomeDebian 这样的项目已经在自己的服务器运行开源版 GitLab 。随着今天的宣布,在专有软件上运行的开源项目可以使用 GitLab 提供的所有功能,同时我们通过向非开源组织收费来建立可持续的业务模式。

GitLab 提供的这些“免费”套餐是什么?

GitLab Pricing

GitLab 有两类产品。一个是你可以在自己的云托管服务如 Digital Ocean 上运行的软件。另一个是 Gitlab 软件既服务,其中托管由 GitLab 本身管理,你在 GitLab.com 上获得一个帐户。

GitLab Pricing for hosted service

黄金套餐是托管类别中最高的产品,而旗舰套餐是自托管类别中的最高产品。

你可以在 GitLab 定价页面上获得有关其功能的更多详细信息。请注意,支持服务不包括在套餐中。你必须单独购买。

你必须符合某些条件才能使用此优惠

GitLab 还提到 —— 该优惠对谁有效。以下是他们在博客文章中写的内容:

  1. 教育机构:任何为了学习、教育的机构,并且/或者由合格的教育机构、教职人员、学生训练。教育目的不包括商业,专业或任何其他营利目的。
  2. 开源项目:任何使用标准开源许可证且非商业性的项目。它不应该有付费支持或付费贡献者。

虽然免费套餐不包括支持,但是当你迫切需要专家帮助解决问题时,你仍然可以支付每用户每月 4.95 美元的额外费用 —— 当你特别需要一个专家来解决问题时,这是一个非常合理的价格。

GitLab 还为学生们添加了一条说明:

为减轻 GitLab 的管理负担,只有教育机构才能代表学生申请。如果你是学生并且你的教育机构不申请,你可以在 GitLab.com 上使用公共项目的所有功能,使用私人项目的免费功能,或者自己付费。

总结

现在 GitLab 正在加快脚步,你如何看待它?

你有 GitHub 上的项目吗?你会切换么?或者,幸运的是,你从一开始就碰巧使用 GitLab?

请在下面的评论栏告诉我们你的想法。


via: https://itsfoss.com/gitlab-free-open-source/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果有什么我讨厌的东西,那就是当我知道我可以自动化它们时,但我手动进行了操作。只有我有这种情况么?我觉得不是。

尽管如此,他们每天都有数千名使用 GitHub 的开发人员一遍又一遍地做同样的事情:他们点击这个按钮:

Screen-Shot-2018-06-19-at-18.12.39

这没有任何意义。

不要误解我的意思。合并拉取请求是有意义的。只是每次点击这个该死的按钮是没有意义的。

这样做没有意义因为世界上的每个开发团队在合并拉取请求之前都有一个已知的先决条件列表。这些要求几乎总是相同的,而且这些要求也是如此:

  • 是否通过测试?
  • 文档是否更新了?
  • 这是否遵循我们的代码风格指南?
  • 是否有若干位开发人员对此进行审查?

随着此列表变长,合并过程变得更容易出错。 “糟糕,在没有足够的开发人员审查补丁时 John 就点了合并按钮。” 要发出警报么?

在我的团队中,我们就像外面的每一支队伍。我们知道我们将一些代码合并到我们仓库的标准是什么。这就是为什么我们建立一个持续集成系统,每次有人创建一个拉取请求时运行我们的测试。我们还要求代码在获得批准之前由团队的 2 名成员进行审查。

当这些条件全部设定好时,我希望代码被合并。

而不用点击一个按钮。

这正是启动 Mergify 的原因。

github-branching-1

Mergify 是一个为你按下合并按钮的服务。你可以在仓库的 .mergify.yml 中定义规则,当规则满足时,Mergify 将合并该请求。

无需按任何按钮。

随机抽取一个请求,就像这样:

Screen-Shot-2018-06-20-at-17.12.11

这来自一个小型项目,没有很多持续集成服务,只有 Travis。在这个拉取请求中,一切都是绿色的:其中一个所有者审查了代码,并且测试通过。因此,该代码应该被合并:但是它还在那里挂起这,等待某人有一天按下合并按钮。

使用 Mergify 后,你只需将 .mergify.yml 放在仓库的根目录即可:

rules:
  default:
    protection:
      required_status_checks:
        contexts:
          - continuous-integration/travis-ci
      required_pull_request_reviews:
        required_approving_review_count: 1

通过这样的配置,Mergify 可以实现所需的限制,即 Travis 通过,并且至少有一个项目成员审阅了代码。只要这些条件是肯定的,拉取请求就会自动合并。

我们将 Mergify 构建为 一个对开源项目免费的服务提供服务的引擎也是开源的。

现在去尝试它,不要让这些拉取请求再挂起哪怕一秒钟。合并它们!

如果你有任何问题,请随时在下面向我们提问或写下评论!并且敬请期待 - 因为 Mergify 还提供了其他一些我迫不及待想要介绍的功能!


via: https://julien.danjou.info/stop-merging-your-pull-request-manually/

作者:Julien Danjou 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出