diff --git a/app/controllers/api/v1/projects/contents_controller.rb b/app/controllers/api/v1/projects/contents_controller.rb
new file mode 100644
index 000000000..a4e65051e
--- /dev/null
+++ b/app/controllers/api/v1/projects/contents_controller.rb
@@ -0,0 +1,13 @@
+class Api::V1::Projects::ContentsController < Api::V1::BaseController
+ before_action :require_operate_above, only: [:batch]
+
+ def batch
+ @result_object = Api::V1::Projects::Contents::BatchCreateService.call(@project, batch_content_params, current_user&.gitea_token)
+ puts @result_object
+ end
+
+ private
+ def batch_content_params
+ params.require(:content).permit(:author_email, :author_name, :author_timeunix, :branch, :committer_email, :committer_name, :committer_timeunix, :message, :new_branch, files: [ :action_type, :content, :encoding, :file_path])
+ end
+end
\ No newline at end of file
diff --git a/app/docs/slate/source/includes/_repositories.md b/app/docs/slate/source/includes/_repositories.md
index 5b5067495..ae74dac7f 100644
--- a/app/docs/slate/source/includes/_repositories.md
+++ b/app/docs/slate/source/includes/_repositories.md
@@ -1093,6 +1093,138 @@ await octokit.request('GET /api/yystopf/ceshi/files.json')
]
```
+## 提交文件到仓库
+提交文件到仓库,支持批量
+
+> 示例:
+
+```shell
+curl -X POST \
+-d "files[][action_type]=create" \
+-d "files[][content]=jfksj" \
+-d "files[][encoding]=text" \
+-d "files[][file_path]=heihei8" \
+-d "author_email=yystopf@163.com" \
+-d "author_name=yystopf" \
+-d "author_timeunix=1658214400" \
+-d "committer_email=yystopf@163.com" \
+-d "committer_name=yystopf" \
+-d "committer_timeunix=1658214400" \
+-d "branch=develop" \
+-d "new_branch=develop_ceshi" \
+-d "message=测试提交" \
+http://localhost:3000/api/v1/yystopf/ceshi/contents/batch.json
+```
+
+```javascript
+await octokit.request('POST /api/v1/yystopf/ceshi/contents/batch.json')
+```
+
+### HTTP 请求
+`POST /api/v1/:owner/:repo/contents/batch`
+
+### 请求参数:
+参数 | 必选 | 默认 | 类型 | 字段说明
+--------- | ------- | ------- | -------- | ----------
+|owner |是| |string |用户登录名 |
+|repo |是| |string |项目标识identifier |
+|files.action_type |是| |string|操作类型 create: 创建 update: 更新 delete: 删除|
+|files.content |是| |string|文件内容|
+|files.encoding |是| |string|文件编码方式 text 文本 base64 加密|
+|files.file_path |是| |string|文件路径|
+|author_email |是| |string|作者邮箱|
+|author_name |是| |string|作者名称|
+|author_timeunix |是| |int|编码时间,精确到秒|
+|committer_email |是| |string|提交者邮箱|
+|committer_name |是| |string|提交者名称|
+|committer_timeunix|是| |int|提交时间戳,精确到秒|
+|branch |是| |string|提交分支|
+|new_branch |否| |string|如果需要创建新分支,这个需要填|
+|message |是| |string|提交信息|
+
+> 请求的JSON示例:
+
+```json
+{
+ "files": [
+ {
+ "action_type": "create",
+ "content": "jfksj",
+ "encoding": "text",
+ "file_path": "heihei7"
+ }
+ ],
+ "author_email": "yystopf@163.com",
+ "author_name": "yystopf",
+ "author_timeunix": 1658214400,
+ "committer_email": "yystopf@163.com",
+ "committer_name": "yystopf",
+ "committer_timeunix": 1658214400,
+ "branch": "hh_ceshi",
+ "message": "测试提交"
+}
+```
+
+### 返回字段说明:
+参数 | 类型 | 字段说明
+--------- | ----------- | -----------
+|commit.sha |string |提交ID|
+|commit.author |object |作者|
+|commit.committer |object |提交者|
+|commit.commit_message|string |提交信息|
+|commit.parent_shas |array |父节点commit ID|
+|commit.authored_time|int |编码时间|
+|commit.commited_time|int |提交时间|
+|contents.name |string |文件名称|
+|contents.path |string |文件路径|
+|contents.sha |string |文件标识|
+|contents.type |string |文件类型|
+|contents.size |int |文件大小|
+|contents.url |string |文件地址|
+|contents.encoding |string |编码类型 text 文本 base64 加密 |
+|contents.content |string |文件内容|
+
+
+> 返回的JSON示例:
+
+```json
+{
+ "commit": {
+ "sha": "7c1e25f9b974e4b7a3816bd7f5e49b441078e999",
+ "author": {
+ "id": "2",
+ "login": "yystopf",
+ "name": "heh",
+ "type": "User",
+ "image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
+ },
+ "committer": {
+ "id": "2",
+ "login": "yystopf",
+ "name": "heh",
+ "type": "User",
+ "image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
+ },
+ "commit_message": "测试提交\n",
+ "parent_shas": [
+ "9aec816d0f3600082ca77893290a14bd29d805fe"
+ ],
+ "authored_time": 1658214400,
+ "commited_time": 1658214400
+ },
+ "contents": [
+ {
+ "name": "heihei7",
+ "path": "heihei7",
+ "sha": "f0acac8efb3021b0f6a7b13b42d033d86e076a4b",
+ "type": "file",
+ "size": 5,
+ "encoding": "base64",
+ "content": "amZrc2o="
+ }
+ ]
+}
+```
## 获取仓库代码目录
获取仓库代码目录
diff --git a/app/services/api/v1/projects/branches/create_service.rb b/app/services/api/v1/projects/branches/create_service.rb
index 33e561270..2837dfcf4 100644
--- a/app/services/api/v1/projects/branches/create_service.rb
+++ b/app/services/api/v1/projects/branches/create_service.rb
@@ -44,7 +44,7 @@ class Api::V1::Projects::Branches::CreateService < ApplicationService
end
def check_new_branch_exist
- result = $gitea_client.get_repos_branch_name_set_by_owner_repo(owner, repo) rescue nil
+ result = $gitea_client.get_repos_branch_name_set_by_owner_repo(owner, repo, {query: request_params}) rescue nil
raise Error, '查询分支名称失败!' unless result.is_a?(Hash)
raise Error, '分支已存在!' if result['branch_name'].include?(@new_branch_name)
end
diff --git a/app/services/api/v1/projects/contents/batch_create_service.rb b/app/services/api/v1/projects/contents/batch_create_service.rb
new file mode 100644
index 000000000..d987f9318
--- /dev/null
+++ b/app/services/api/v1/projects/contents/batch_create_service.rb
@@ -0,0 +1,91 @@
+class Api::V1::Projects::Contents::BatchCreateService < ApplicationService
+ include ActiveModel::Model
+
+ attr_reader :project, :owner, :repo, :token
+ attr_reader :files, :author_email, :author_name, :author_timeunix, :branch, :committer_email, :committer_name, :committer_timeunix, :message, :new_branch
+ attr_accessor :gitea_data
+
+ validates :author_email, :committer_email, presence: true, format: { with: CustomRegexp::EMAIL }
+ validates :author_name, :committer_name, presence: true, format: { with: /\A(?!_)(?!.*?_$)[a-zA-Z0-9_-]{4,15}\z/ }
+ validates :author_timeunix, :committer_timeunix, presence: true
+ validates :branch, presence: true
+ validates :message, presence: true
+
+
+ def initialize(project, params, token=nil)
+ puts params
+ @project = project
+ @owner = project&.owner.login
+ @repo = project&.identifier
+ @token = token
+ @files = params[:files]
+ @author_email = params[:author_email]
+ @author_name = params[:author_name]
+ @author_timeunix = params[:author_timeunix]
+ @branch = params[:branch]
+ @committer_email = params[:committer_email]
+ @committer_name = params[:committer_name]
+ @committer_timeunix = params[:committer_timeunix]
+ @message = params[:message]
+ @new_branch = params[:new_branch]
+ end
+
+ def call
+ raise Error, '请输入正确的文件参数Files' unless valid_files?
+ raise Error, errors.full_messages.join(", ") unless valid?
+ check_branch_exist
+ excute_data_to_gitea
+
+ gitea_data
+ end
+
+ private
+ def request_params
+ {
+ access_token: token
+ }
+ end
+
+ def request_body
+ {
+ files: files,
+ header: {
+ author: {
+ email: author_email,
+ name: author_name
+ },
+ committer: {
+ email: committer_email,
+ name: committer_name
+ },
+ dates: {
+ author: Time.at(author_timeunix.to_i),
+ committer: Time.at(committer_timeunix.to_i)
+ },
+ message: message,
+ new_branch: new_branch,
+ signoff: false
+ }
+ }
+ end
+
+ def valid_files?
+ return false unless files.is_a?(Array) && !files.blank?
+ files.each do |file|
+ return false unless file.has_key?(:action_type) && file.has_key?(:content) && file.has_key?(:encoding) && file.has_key?(:file_path)
+ end
+ end
+
+ def excute_data_to_gitea
+ @gitea_data = $gitea_client.post_repos_contents_batch_by_owner_repo(owner, repo, {body: request_body.to_json, query: request_params}) rescue nil
+ raise Error, '创建文件失败!' unless @gitea_data.is_a?(Hash)
+ end
+
+ def check_branch_exist
+ result = $gitea_client.get_repos_branch_name_set_by_owner_repo(owner, repo, {query: request_params} ) rescue nil
+ raise Error, '查询分支名称失败!' unless result.is_a?(Hash)
+ raise Error, '分支不存在!' unless result['branch_name'].include?(branch)
+ raise Error, '分支已存在!' if result['branch_name'].include?(new_branch) && new_branch.nil?
+ end
+
+end
\ No newline at end of file
diff --git a/app/views/api/v1/projects/blame.json.jbuilder b/app/views/api/v1/projects/blame.json.jbuilder
index d2e689537..8dfa6c8a4 100644
--- a/app/views/api/v1/projects/blame.json.jbuilder
+++ b/app/views/api/v1/projects/blame.json.jbuilder
@@ -12,9 +12,9 @@ json.blame_parts @result_object['blame_parts'] do |part|
json.partial! 'api/v1/users/commit_user', locals: { user: render_cache_commit_author(part['commit']['commiter']), name: part['commit']['commiter']['Name'] }
end
json.commit_message part['commit']['commit_message']
- json.authored_time part['commit']['authored_time'].to_time.strftime("%Y-%m-%d %H:%M:%S")
- json.committed_time part['commit']['committed_time'].to_time.strftime("%Y-%m-%d %H:%M:%S")
- json.created_time part['commit']['created_time'].to_time.strftime("%Y-%m-%d %H:%M:%S")
+ json.authored_time render_unix_time(part['commit']['authored_time'])
+ json.committed_time render_unix_time(part['commit']['committed_time'])
+ json.created_time render_unix_time(part['commit']['created_time'])
end
json.current_number part['current_number']
json.effect_line part['effect_line']
diff --git a/app/views/api/v1/projects/commits/_simple_gitea_detail.json.jbuilder b/app/views/api/v1/projects/commits/_simple_gitea_detail.json.jbuilder
new file mode 100644
index 000000000..36e3cc160
--- /dev/null
+++ b/app/views/api/v1/projects/commits/_simple_gitea_detail.json.jbuilder
@@ -0,0 +1,10 @@
+json.sha commit['sha']
+json.author do
+ json.partial! 'api/v1/users/commit_user', locals: { user: render_cache_commit_author(commit['author']), name: commit['author']['name'] }
+end
+
+json.committer do
+ json.partial! 'api/v1/users/commit_user', locals: { user: render_cache_commit_author(commit['committer']), name: commit['committer']['name'] }
+end
+json.commit_message commit['message']
+json.parent_shas commit['parents'].map{|x|x['sha']}
\ No newline at end of file
diff --git a/app/views/api/v1/projects/commits/index.json.jbuilder b/app/views/api/v1/projects/commits/index.json.jbuilder
index aa13845a1..bd085535c 100644
--- a/app/views/api/v1/projects/commits/index.json.jbuilder
+++ b/app/views/api/v1/projects/commits/index.json.jbuilder
@@ -12,6 +12,6 @@ json.commits @result_object[:data].each do |commit|
json.parent_shas commit['parents'].map{|x|x['sha']}
json.files commit['files'].map{|f|f['filename']}
json.commit_date commit['commit_date']
- json.commit_time commit['commit']['committer']['date'].to_time.strftime("%Y-%m-%d %H:%M:%S")
+ json.commit_time render_unix_time(commit['commit']['committer']['date'])
json.branch commit['branch']
end
\ No newline at end of file
diff --git a/app/views/api/v1/projects/contents/batch.json.jbuilder b/app/views/api/v1/projects/contents/batch.json.jbuilder
new file mode 100644
index 000000000..a9ef08fa6
--- /dev/null
+++ b/app/views/api/v1/projects/contents/batch.json.jbuilder
@@ -0,0 +1,14 @@
+json.commit do
+ json.partial! "api/v1/projects/commits/simple_gitea_detail", commit: @result_object['commit']
+ json.authored_time render_unix_time(@result_object['commit']['author']['date'])
+ json.commited_time render_unix_time(@result_object['commit']['committer']['date'])
+end
+json.contents @result_object['contents'].each do |content|
+ json.name content['name']
+ json.path content['path']
+ json.sha content['sha']
+ json.type content['type']
+ json.size content['size']
+ json.encoding content['encoding']
+ json.content content['content']
+end
\ No newline at end of file
diff --git a/config/routes/api.rb b/config/routes/api.rb
index 6a01d1aba..81668804e 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -37,6 +37,12 @@ defaults format: :json do
get '/commits/:sha/diff', to: 'commits#diff'
get '/git/blobs/:sha', to: 'git#blobs'
get '/git/trees/:sha', to: 'git#trees'
+
+ resources :contents, only: [:index] do
+ collection do
+ post :batch
+ end
+ end
end
end
diff --git a/public/docs/api.html b/public/docs/api.html
index 0fcb033ae..52e114d72 100644
--- a/public/docs/api.html
+++ b/public/docs/api.html
@@ -538,6 +538,9 @@
获取仓库所有文件
+
+ 提交文件到仓库
+
获取仓库代码目录
@@ -9056,6 +9059,292 @@ http://localhost:3000/api/yystopf/ceshi/files.json
"html_url": "http://localhost:10080/yystopf/ceshi/src/branch/master/README.md"
}
]
+提交文件到仓库
+提交文件到仓库,支持批量
+
+
+示例:
+
+curl -X POST \
+-d "files[][action_type]=create" \
+-d "files[][content]=jfksj" \
+-d "files[][encoding]=text" \
+-d "files[][file_path]=heihei8" \
+-d "author_email=yystopf@163.com" \
+-d "author_name=yystopf" \
+-d "author_timeunix=1658214400" \
+-d "committer_email=yystopf@163.com" \
+-d "committer_name=yystopf" \
+-d "committer_timeunix=1658214400" \
+-d "branch=develop" \
+-d "new_branch=develop_ceshi" \
+-d "message=测试提交" \
+http://localhost:3000/api/v1/yystopf/ceshi/contents/batch.json
+
await octokit.request('POST /api/v1/yystopf/ceshi/contents/batch.json')
+
HTTP 请求
+POST /api/v1/:owner/:repo/contents/batch
+请求参数:
+
+
+参数 |
+必选 |
+默认 |
+类型 |
+字段说明 |
+
+
+
+owner |
+是 |
+ |
+string |
+用户登录名 |
+
+
+repo |
+是 |
+ |
+string |
+项目标识identifier |
+
+
+files.action_type |
+是 |
+ |
+string |
+操作类型 create: 创建 update: 更新 delete: 删除 |
+
+
+files.content |
+是 |
+ |
+string |
+文件内容 |
+
+
+files.encoding |
+是 |
+ |
+string |
+文件编码方式 text 文本 base64 加密 |
+
+
+files.file_path |
+是 |
+ |
+string |
+文件路径 |
+
+
+author_email |
+是 |
+ |
+string |
+作者邮箱 |
+
+
+author_name |
+是 |
+ |
+string |
+作者名称 |
+
+
+author_timeunix |
+是 |
+ |
+int |
+编码时间,精确到秒 |
+
+
+committer_email |
+是 |
+ |
+string |
+提交者邮箱 |
+
+
+committer_name |
+是 |
+ |
+string |
+提交者名称 |
+
+
+committer_timeunix |
+是 |
+ |
+int |
+提交时间戳,精确到秒 |
+
+
+branch |
+是 |
+ |
+string |
+提交分支 |
+
+
+new_branch |
+否 |
+ |
+string |
+如果需要创建新分支,这个需要填 |
+
+
+message |
+是 |
+ |
+string |
+提交信息 |
+
+
+
+
+请求的JSON示例:
+
+{
+ "files": [
+ {
+ "action_type": "create",
+ "content": "jfksj",
+ "encoding": "text",
+ "file_path": "heihei7"
+ }
+ ],
+ "author_email": "yystopf@163.com",
+ "author_name": "yystopf",
+ "author_timeunix": 1658214400,
+ "committer_email": "yystopf@163.com",
+ "committer_name": "yystopf",
+ "committer_timeunix": 1658214400,
+ "branch": "hh_ceshi",
+ "message": "测试提交"
+}
+
返回字段说明:
+
+
+参数 |
+类型 |
+字段说明 |
+
+
+
+commit.sha |
+string |
+提交ID |
+
+
+commit.author |
+object |
+作者 |
+
+
+commit.committer |
+object |
+提交者 |
+
+
+commit.commit_message |
+string |
+提交信息 |
+
+
+commit.parent_shas |
+array |
+父节点commit ID |
+
+
+commit.authored_time |
+int |
+编码时间 |
+
+
+commit.commited_time |
+int |
+提交时间 |
+
+
+contents.name |
+string |
+文件名称 |
+
+
+contents.path |
+string |
+文件路径 |
+
+
+contents.sha |
+string |
+文件标识 |
+
+
+contents.type |
+string |
+文件类型 |
+
+
+contents.size |
+int |
+文件大小 |
+
+
+contents.url |
+string |
+文件地址 |
+
+
+contents.encoding |
+string |
+编码类型 text 文本 base64 加密 |
+
+
+contents.content |
+string |
+文件内容 |
+
+
+
+
+返回的JSON示例:
+
+{
+ "commit": {
+ "sha": "7c1e25f9b974e4b7a3816bd7f5e49b441078e999",
+ "author": {
+ "id": "2",
+ "login": "yystopf",
+ "name": "heh",
+ "type": "User",
+ "image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
+ },
+ "committer": {
+ "id": "2",
+ "login": "yystopf",
+ "name": "heh",
+ "type": "User",
+ "image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
+ },
+ "commit_message": "测试提交\n",
+ "parent_shas": [
+ "9aec816d0f3600082ca77893290a14bd29d805fe"
+ ],
+ "authored_time": 1658214400,
+ "commited_time": 1658214400
+ },
+ "contents": [
+ {
+ "name": "heihei7",
+ "path": "heihei7",
+ "sha": "f0acac8efb3021b0f6a7b13b42d033d86e076a4b",
+ "type": "file",
+ "size": 5,
+ "encoding": "base64",
+ "content": "amZrc2o="
+ }
+ ]
+}
获取仓库代码目录
获取仓库代码目录
@@ -9066,9 +9355,9 @@ http://localhost:3000/api/yystopf/ceshi/files.json
-d "ref=develop" \
http://localhost:3000//api/jasder/jasder_test/entries.json
await octokit.request('GET /api/jasder/jasder_test/entries.json')
-
HTTP 请求
+HTTP 请求
GET /api/:owner/:repo/entries.json
-请求参数:
+请求参数:
参数 |
@@ -9100,7 +9389,7 @@ http://localhost:3000//api/jasder/jasder_test/entries.json
分支名称、tag名称或是提交记录id,默认为master分支 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9214,9 +9503,9 @@ http://localhost:3000//api/jasder/jasder_test/entries.json
-d "filepath=file" \
http://localhost:3000//api/jasder/jasder_test/sub_entries.json
await octokit.request('GET /api/jasder/jasder_test/sub_entries.json')
-
HTTP 请求
+HTTP 请求
GET /api/:owner/:repo/sub_entries.json
-请求参数:
+请求参数:
参数 |
@@ -9255,7 +9544,7 @@ http://localhost:3000//api/jasder/jasder_test/sub_entries.json
分支名称、tag名称或是提交记录id,默认为master分支 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9352,9 +9641,9 @@ http://localhost:3000//api/jasder/jasder_test/sub_entries.json
-d "filepath=lib" \
http://localhost:3000/api/yystopf/csfjkkj/readme.json
await octokit.request('GET /api/yystopf/csfjkkj/readme.json')
-
HTTP 请求
+HTTP 请求
GET /api/:owner/:repo/readme.json
-请求参数:
+请求参数:
参数 |
@@ -9393,7 +9682,7 @@ http://localhost:3000/api/yystopf/csfjkkj/readme.json
子目录名称,默认为空 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9466,9 +9755,9 @@ http://localhost:3000/api/yystopf/csfjkkj/readme.json
-d "limit=1" \
http://localhost:3000/api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae693756a4781fab2.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae693756a4781fab2.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/git/trees/:sha.json
-请求参数:
+请求参数:
参数 |
@@ -9521,7 +9810,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae
分页个数 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9594,9 +9883,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae
curl -X GET http://localhost:3000/api/v1/yystopf/csfjkkj/git/blobs/80dd40214a58622312393b2ae693756a4781fab2.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/git/blobs/80dd40214a58622312393b2ae693756a4781fab2.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/git/blobs/:sha.json
-请求参数:
+请求参数:
参数 |
@@ -9628,7 +9917,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae
提交记录id |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9683,9 +9972,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/git/trees/80dd40214a58622312393b2ae
-d "limit=1" \
http://localhost:3000/api/v1/yystopf/csfjkkj/commits.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/commits.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/commits.json
-请求参数:
+请求参数:
参数 |
@@ -9731,7 +10020,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/commits.json
每页数量 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -9838,9 +10127,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/commits.json
curl -X GET http://localhost:3000/api/v1/yystopf/csfjkkj/commits/80dd40214a58622312393b2ae693756a4781fab2/diff.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/commits/80dd40214a58622312393b2ae693756a4781fab2/diff.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/commits/:sha/diff.json
-请求参数:
+请求参数:
参数 |
@@ -9872,7 +10161,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/commits.json
提交记录id |
-返回字段说明:
+返回字段说明:
参数 |
@@ -10098,9 +10387,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/commits.json
-d "filepath=hd.txt" \
http://localhost:3000/api/v1/yystopf/csfjkkj/blame.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/blame.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/blame.json
-请求参数:
+请求参数:
参数 |
@@ -10139,7 +10428,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/blame.json
文件路径 |
-返回字段说明:
+返回字段说明:
参数 |
@@ -10355,9 +10644,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/blame.json
-d "to=master" \
http://localhost:3000/api/v1/yystopf/csfjkkj/compare.json
await octokit.request('GET /api/v1/yystopf/csfjkkj/compare.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/compare.json
-请求参数:
+请求参数:
参数 |
@@ -10396,7 +10685,7 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/compare.json
目标分支、标签、commitID |
-返回字段说明:
+返回字段说明:
参数 |
@@ -10681,9 +10970,9 @@ http://localhost:3000/api/v1/yystopf/csfjkkj/compare.json
curl -X GET \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks.json
await octokit.request('GET /api/v1/yystopf/ceshi/webhooks.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/webhooks.json
-请求参数:
+请求参数:
参数 |
@@ -10708,7 +10997,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks.json
项目标识identifier |
-返回字段说明:
+返回字段说明:
参数 |
@@ -10801,9 +11090,9 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks.json
curl -X GET \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3.json
await octokit.request('GET /api/v1/yystopf/ceshi/webhooks/3.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/webhooks/:id.json
-请求参数:
+请求参数:
参数 |
@@ -10835,7 +11124,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3.json
webhook ID |
-返回字段说明:
+返回字段说明:
参数 |
@@ -10958,214 +11247,8 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3.json
curl -X POST \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks.json
await octokit.request('POST /api/v1/yystopf/ceshi/webhooks.json')
-
HTTP 请求
-POST /api/v1/:owner/:repo/webhooks.json
-请求参数:
-
-
-参数 |
-必选 |
-默认 |
-类型 |
-字段说明 |
-
-
-
-owner |
-是 |
- |
-string |
-用户登录名 |
-
-
-repo |
-是 |
- |
-string |
-项目标识identifier |
-
-
-webhook.url |
-是 |
- |
-string |
-目标url |
-
-
-webhook.http_method |
-是 |
- |
-string |
-http方法, POST和GET |
-
-
-webhook.content_type |
-是 |
- |
-string |
-POST Content Type |
-
-
-webhook.secret |
-否 |
- |
-string |
-密钥文本 |
-
-
-webhook.active |
-是 |
- |
-bool |
-是否激活 |
-
-
-webhook.branch_filter |
-否 |
- |
-string |
-分支过滤 |
-
-
-webhook.events |
-否 |
- |
-array |
-触发事件 |
-
-
-
-触发事件字段说明
-
-
-
-参数 |
-含义 |
-
-
-
-create |
-创建分支或标签 |
-
-
-delete |
-分支或标签删除 |
-
-
-push |
-git仓库推送 |
-
-
-pull_request |
-合并请求 |
-
-
-pull_request_assign |
-合并请求被指派 |
-
-
-pull_request_review_approved |
-合并请求被批准 |
-
-
-pull_request_review_rejected |
-合并请求被拒绝 |
-
-
-
-
-请求的JSON示例:
-
-{
- "active": true,
- "content_type": "json",
- "http_method": "GET",
- "secret": "123456",
- "url": "http://localhost:10000",
- "branch_filter": "*",
- "events": ["push"]
-}
-
返回字段说明:
-
-
-参数 |
-类型 |
-字段说明 |
-
-
-
-id |
-int |
-id |
-
-
-url |
-string |
-地址 |
-
-
-content_type |
-string |
-POST Content Type |
-
-
-is_active |
-bool |
-是否激活 |
-
-
-type |
-string |
-类型 |
-
-
-events |
-array |
-触发事件 |
-
-
-create_time |
-string |
-创建时间 |
-
-
-
-
-返回的JSON示例:
-
-{
- "id": 68,
- "content_type": "json",
- "http_method": "GET",
- "url": "http://127.0.0.1:3000",
- "events": [
- "create",
- "delete",
- "push",
- "pull_request",
- "pull_request_assign",
- "pull_request_review_approved",
- "pull_request_review_rejected"
- ],
- "active": true,
- "branch_filter": "*",
- "created_at": "2022-06-23 15:52"
-}
-
-
-更新仓库webhook
-更新仓库webhook
-
-
-示例:
-
-curl -X PATCH \
-http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
-
await octokit.request('PATCH /api/v1/yystopf/ceshi/webhooks/7.json')
HTTP 请求
-PATCH /api/v1/:owner/:repo/webhooks/68.json
+POST /api/v1/:owner/:repo/webhooks.json
请求参数:
@@ -11191,13 +11274,6 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
项目标识identifier |
-id |
-是 |
- |
-string |
-webhook id |
-
-
webhook.url |
是 |
|
@@ -11299,6 +11375,219 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
"events": ["push"]
}
返回字段说明:
+
+
+参数 |
+类型 |
+字段说明 |
+
+
+
+id |
+int |
+id |
+
+
+url |
+string |
+地址 |
+
+
+content_type |
+string |
+POST Content Type |
+
+
+is_active |
+bool |
+是否激活 |
+
+
+type |
+string |
+类型 |
+
+
+events |
+array |
+触发事件 |
+
+
+create_time |
+string |
+创建时间 |
+
+
+
+
+返回的JSON示例:
+
+{
+ "id": 68,
+ "content_type": "json",
+ "http_method": "GET",
+ "url": "http://127.0.0.1:3000",
+ "events": [
+ "create",
+ "delete",
+ "push",
+ "pull_request",
+ "pull_request_assign",
+ "pull_request_review_approved",
+ "pull_request_review_rejected"
+ ],
+ "active": true,
+ "branch_filter": "*",
+ "created_at": "2022-06-23 15:52"
+}
+
+
+更新仓库webhook
+更新仓库webhook
+
+
+示例:
+
+curl -X PATCH \
+http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
+
await octokit.request('PATCH /api/v1/yystopf/ceshi/webhooks/7.json')
+
HTTP 请求
+PATCH /api/v1/:owner/:repo/webhooks/68.json
+请求参数:
+
+
+参数 |
+必选 |
+默认 |
+类型 |
+字段说明 |
+
+
+
+owner |
+是 |
+ |
+string |
+用户登录名 |
+
+
+repo |
+是 |
+ |
+string |
+项目标识identifier |
+
+
+id |
+是 |
+ |
+string |
+webhook id |
+
+
+webhook.url |
+是 |
+ |
+string |
+目标url |
+
+
+webhook.http_method |
+是 |
+ |
+string |
+http方法, POST和GET |
+
+
+webhook.content_type |
+是 |
+ |
+string |
+POST Content Type |
+
+
+webhook.secret |
+否 |
+ |
+string |
+密钥文本 |
+
+
+webhook.active |
+是 |
+ |
+bool |
+是否激活 |
+
+
+webhook.branch_filter |
+否 |
+ |
+string |
+分支过滤 |
+
+
+webhook.events |
+否 |
+ |
+array |
+触发事件 |
+
+
+
+触发事件字段说明
+
+
+
+参数 |
+含义 |
+
+
+
+create |
+创建分支或标签 |
+
+
+delete |
+分支或标签删除 |
+
+
+push |
+git仓库推送 |
+
+
+pull_request |
+合并请求 |
+
+
+pull_request_assign |
+合并请求被指派 |
+
+
+pull_request_review_approved |
+合并请求被批准 |
+
+
+pull_request_review_rejected |
+合并请求被拒绝 |
+
+
+
+
+请求的JSON示例:
+
+{
+ "active": true,
+ "content_type": "json",
+ "http_method": "GET",
+ "secret": "123456",
+ "url": "http://localhost:10000",
+ "branch_filter": "*",
+ "events": ["push"]
+}
+
返回字段说明:
返回的JSON示例:
@@ -11333,9 +11622,9 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
curl -X DELETE \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
await octokit.request('DELETE /api/v1/yystopf/ceshi/webhooks/7.json')
-
HTTP 请求
+HTTP 请求
DELETE /api/v1/:owner/:repo/webhooks/:id.json
-请求参数:
+请求参数:
参数 |
@@ -11367,7 +11656,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
webhook id |
-返回字段说明:
+返回字段说明:
返回的JSON示例:
@@ -11388,9 +11677,9 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/7.json
curl -X GET \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3/hooktasks.json
await octokit.request('GET /api/v1/yystopf/ceshi/webhooks/3/hooktasks.json')
-
HTTP 请求
+HTTP 请求
GET /api/v1/:owner/:repo/webhooks/:id/hooktasks.json
-请求参数:
+请求参数:
参数 |
@@ -11422,7 +11711,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3/hooktasks.json
webhook ID |
-返回字段说明:
+返回字段说明:
参数 |
@@ -11659,9 +11948,9 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3/hooktasks.json
curl -X POST \
http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3/tests.json
await octokit.request('POST /api/v1/yystopf/ceshi/webhooks/3/tests.json')
-
HTTP 请求
+HTTP 请求
POST /api/v1/:owner/:repo/webhooks/:id/tests.json
-请求参数:
+请求参数:
参数 |
@@ -11693,7 +11982,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks/3/tests.json
webhook ID |
-返回字段说明:
+返回字段说明:
返回的JSON示例: