diff --git a/src/course/actions.md b/src/course/actions.md index 721af963d554045bdd0ae84656110102abf6dad6..5d05b087ea655e2f2688b4bab484351a6edb5e0f 100644 --- a/src/course/actions.md +++ b/src/course/actions.md @@ -2,16 +2,166 @@ 目前 Learning Lab 支持的动作包括: -- push -- tag_push -- note -- confidential_note -- issue -- confidential_issue -- merge_request -- pipeline -- Pages -- wiki -- commit -- deployment -- alert +- close_issue +- open_issue(create_issue) +- open_merge_request(merge_request.create) +- close_merge_request(merge_request.close) +- create_branch +- delete_branch +- reply(issue_comment.created,note,choice) + + +## open_issue + +使用`open_issue`动作来创建一个新issue,也可使用此动作的别名`create_issue`来创建 + +### 示例 + +在`transitions`中的`action`中可以使用`open_issue`来执行关闭issue动作,下面的例子中,监听了用户关闭issue的动作,当用户关闭issue之后,便使用open_issue动作来创建一个新的issue,并把该issue的链接存储到`chapter_4_issue`这个变量里 + +```yaml +step6: + link: '{{chapter_3_issue}}' + description: "完成当前章节学习" + transitions: + events: ['close_issue'] + action: + - type: open_issue + title: "Markdown :链接" + with: 004_1_link_basic.md + store: + chapter_4_issue: '{{result.data.html_url}}' + - type: issue_comment.created + with: 003_5_end_2.md + to: end +``` + +### Options + +当`action`为open_issue的时候,支持的参数 + +| 参数 | 类型 | 描述 | 默认 | 是否为必要参数 | +| --- | --- | --- | --- | --- | +| title | String | 新建issue的标题 | | 是 | +| with | String | 新建issue的描述 | | 否 | +| store | object | 此次动作要存储的变量 | | 否 | + +### 创建issue后返回result的格式 + +```ruby +{ + 'result': { + 'data': { + 'html_url': 'https://codechina.csdn.net/namespace/project/issues/1', + 'title': 'issue标题', + 'description': 'issue描述' + } + } +} +``` + + +## open_merge_request + +使用`open_merge_request`动作来创建一个新merge_request,也可使用此动作的别名`merge_request.create`来创建 + +### 示例 + +在`transitions`中的`action`中可以使用`open_merge_request`来执行创建merge_request动作,下面的例子中,监听了用户的push动作,当用户推送代码到master之后,便使用open_merge_request动作来创建一个新的merge_request,并把该merge_request的链接存储到`conflict_merge_1`这个变量里 + +```yaml +step9: + link: '{{chapter_5-1_issue}}' + description: "实战(3): 创建合并请求" + transitions: + events: ['push'] + with: 'master' + action: + - type: open_merge_request + with: 'feature1,master' + store: + conflict_merge_1: '{{result.data.html_url}}' + to: step10 +``` + +### Options + +当`action`为open_merge_request的时候,支持的参数 + +| 参数 | 类型 | 描述 | 默认 | 是否为必要参数 | +| --- | --- | --- | --- | --- | +| with | String | merge_request的source分支和target分支,中间用逗号分隔 | | 是 | + +### 创建open_merge_request后返回result的格式 + +```ruby +{ + 'result': { + 'data': { + 'html_url': 'https://codechina.csdn.net/namespace/project/merge_requests/1', + 'title': 'merge_request标题', + 'description': 'merge_request描述' + } + } +} +``` + + +## close_merge_request + +使用`close_merge_request`动作来关闭一个merge_request,也可使用此动作的别名`merge_request.close`来创建 + +### 示例 + +在`transitions`中的`action`中可以使用`close_merge_request`来执行创建merge_request动作,下面的例子中,监听了用户的push动作,当用户推送代码到master之后,便使用close_merge_request动作来关闭链接存储在`conflict_merge_1`中的这个merge_request + +```yaml +step9: + link: '{{chapter_5-1_issue}}' + description: "实战(3): 创建合并请求" + transitions: + events: ['push'] + with: 'master' + action: + - type: close_merge_request + with: '{{conflict_merge_1}}' + to: step10 +``` + +### Options + +当`action`为close_merge_request的时候,支持的参数 + +| 参数 | 类型 | 描述 | 默认 | 是否为必要参数 | +| --- | --- | --- | --- | --- | +| with | String | 存储merge_request链接的变量名,用`{{}}`包含 | | 是 | + + +## reply + +使用`reply`来当前issue或merge_request中创建一条新的评论,也可使用别名`issue_comment.created`, `note`, `choice` + +### 示例 + +在`transitions`中的`action`中可以使用`reply`来创建一条评论,下面的例子中,监听了用户的回复动作,当用户推送代码到回复任意内容之后,便使用reply动作在当前的issue或merge_request中创建一条新的评论 + +```yaml +step1: + link: '{{chapter_5_issue}}' + description: "git 分支原理" + transitions: + events: ['note_events'] + action: + - type: reply + with: 007_3_how_branch_works_1.md + to: step2 +``` + +### Options + +当`action`为reply的时候,支持的参数 + +| 参数 | 类型 | 描述 | 默认 | 是否为必要参数 | +| --- | --- | --- | --- | --- | +| with | String | 评论内容,可以是文件名,也可以是内容 | | 是 | +