spacevim/bundle/github.vim/autoload/github/api/pulls.vim
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

111 lines
3.2 KiB
VimL

""
" @public
" List all the PRs of a repo.
"
" Github API : GET /repos/:owner/:repo/pulls
function! github#api#pulls#ListAllPRs(owner,repo) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls'], '/'), [])
endfunction
""
" @public
" Get a single pull request
"
" Github API : GET /repos/:owner/:repo/pulls/:number
function! github#api#pulls#Get(owner,repo,number) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls', a:number], '/'), [])
endfunction
""
" @public
" Create a pull request
"
" Input: >
" {
" "title": "Amazing new feature",
" "body": "Please pull this in!",
" "head": "octocat:new-feature",
" "base": "master"
" }
" <
" or: >
" {
" "issue": 5,
" "head": "octocat:new-feature",
" "base": "master"
" }
" <
" Github API : POST /repos/:owner/:repo/pulls
function! github#api#pulls#create(owner,repo,user,password,pull) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls'], '/'),
\ ['-X', 'POST',
\ '-d', json_encode(a:pull),
\ '-u', a:user . ':' . a:password])
endfunction
""
" @public
" Update a pull request
"
" Input: >
" {
" "title": "new title",
" "body": "updated body",
" "state": "open"
" }
" <
" Github API : PATCH /repos/:owner/:repo/pulls/:number
function! github#api#pulls#update(owner,repo,number,pull,user,password) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls', a:number], '/'),
\ ['-X', 'PATCH',
\ '-d', json_encode(a:pull),
\ '-u', a:user . ':' . a:password])
endfunction
""
" @public
" List commits on a pull request
"
" Github API : GET /repos/:owner/:repo/pulls/:number/commits
function! github#api#pulls#ListCommits(owner,repo,number) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls', a:number, 'commits'], '/'), [])
endfunction
""
" @public
" List pull requests files
"
" Github API : GET /repos/:owner/:repo/pulls/:number/files
function! github#api#pulls#ListFiles(owner,repo,number) abort
let page_key = '?page='
let issues = []
for i in range(1,github#api#util#GetLastPage(join(['repos', a:owner, a:repo, 'pulls', a:number, 'files'], '/')))
let iss = github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls', a:number, 'files'], '/') . page_key . i, [])
if !empty(iss) && type(iss) == 3
call extend(issues, iss)
endif
endfor
return issues
endfunction
""
" @public
" Get if a pull request has been merged
"
" Github API : GET /repos/:owner/:repo/pulls/:number/merge
function! github#api#pulls#CheckMerged(owner,repo,number) abort
return github#api#util#GetStatus(join(['repos', a:owner, a:repo , 'pulls', a:number, 'merge'], '/'), []) == 204
endfunction
""
" @public
" Merge a pull request (Merge Button)
"
" Github API : PUT /repos/:owner/:repo/pulls/:number/merge
function! github#api#pulls#Merge(owner,repo,number,msg,user,password) abort
return github#api#util#Get(join(['repos', a:owner, a:repo, 'pulls', a:number, 'merge'], '/'),
\ ['-X', 'PUT',
\ '-d', json_encode(a:msg),
\ '-u', a:user . ':' . a:password])
endfunction