# CODE CHINA Learning Lab

Learning Lab 是一种依托于仓库进行交互学习的新型方式，基于仓库提供的 Issue、Comment、Merge Request、IDE 等能力，来指导学员完成相应的学习任务。

本项目将主要向大家介绍 Learning Lab (alpha) 的具体用法，内容包括：

1. Learning Lab 是什么
2. course 的创建过程
3. 目前支持的事件类型
4. 常见 QA 等内容

## Learning Lab 是什么

简单来说，Learning Lab 是一种依托于仓库进行交互学习的新型方式，基于仓库提供的 Issue、Comment、Merge Request、IDE 等能力，来指导学员完成相应的学习任务。

在 Learning Lab 的课程（course）中，通常会包含两个仓库：

1. course-config 仓库，该仓库为课程的课件仓库，课程的步骤、每个步骤中的学习任务、学习任务达成条件以及课程与学员之间的交互等内容均在`course-config`仓库中进行配置
2. course-template 仓库，该仓库为课程的学习仓库，学员在开始课程学习之后的交互都将发生在`course-template`仓库中，老师也可以通过`course-config`仓库初始化`course-template`中的内容，包括但不限于 项目代码、Issue、Wiki、Branch 等

现阶段，我们开放了的仓库相关可用于 Learning 的能力包括：

- push
- tag_push
- note
- confidential_note
- issue
- confidential_issue
- merge_request
- pipeline
- wiki_page
- commit
- deployment
- alert

后续，我们也将逐步完善和开放更多基于代码仓库的能力，用于打造具有更好学习体验的课程。

## course 的创建过程

现阶段，我们支持通过现有仓库创建课程以及通过模板仓库创建课程两种方式，其中：

### 通过现有仓库创建课程

