# 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

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