mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-04 02:30:04 +08:00
245 lines
6.6 KiB
VimL
Vendored
245 lines
6.6 KiB
VimL
Vendored
""
|
|
" @public
|
|
" List public gists for the specified user:
|
|
"
|
|
" GET /users/:username/gists
|
|
function! github#api#gist#List(user) abort
|
|
return github#api#util#Get(join(['users', a:user, 'gists'], '/'), [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List the authenticated user's gists or if called anonymously, this will return all public gists:
|
|
"
|
|
" GET /gists
|
|
function! github#api#gist#ListAll(user,password) abort
|
|
if empty(a:user) || empty(a:password)
|
|
return github#api#util#Get('gists','')
|
|
else
|
|
return github#api#util#Get('gists', ['-u', a:user . ':' . a:password])
|
|
endif
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List all public gists
|
|
"
|
|
" Get /gists/public
|
|
function! github#api#gist#ListPublic(since) abort
|
|
let url = 'gists/public'
|
|
if !empty(a:since)
|
|
let url = url . '?since=' . a:since
|
|
endif
|
|
return github#api#util#Get(url, [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List starred gists,{since}A timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
|
|
" Only gists updated at or after this time are returned.
|
|
"
|
|
" GET /gists/starred
|
|
function! github#api#gist#ListStarred(user,password,since) abort
|
|
let url = 'gists/starred'
|
|
if !empty(a:since)
|
|
let url = url . '?since=' . a:since
|
|
endif
|
|
return github#api#util#Get(url, ['-u', a:user . ':' . a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Get a single gist
|
|
"
|
|
" Github API : GET /gists/:id
|
|
function! github#api#gist#GetSingle(id) abort
|
|
return github#api#util#Get('gists/' . a:id, [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Get a specific revision of a gist
|
|
"
|
|
" Github API : GET /gists/:id/:sha
|
|
function! github#api#gist#GetSingleSha(id,sha) abort
|
|
return github#api#util#Get(join(['gists', a:id, a:sha], '/'), [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Create a gist
|
|
"
|
|
" Input: >
|
|
" {
|
|
" "description": "the description for this gist",
|
|
" "public": true,
|
|
" "files": {
|
|
" "file1.txt": {
|
|
" "content": "String file contents"
|
|
" }
|
|
" }
|
|
" }
|
|
" <
|
|
" POST : /gists
|
|
function! github#api#gist#Create(desc,filename,content,public,user,password) abort
|
|
let data = {}
|
|
let data.description = a:desc
|
|
let data.public = a:public
|
|
call extend(data, {'files': {a:filename : {'content' :a:content}}})
|
|
return github#api#util#Get('gists', ['-d', json_encode(data), '-X', 'POST', '-u', a:user . ':' .a:password])
|
|
endfunction
|
|
|
|
|
|
""
|
|
" @public
|
|
" Edit a gist
|
|
"
|
|
" Input: >
|
|
" {
|
|
" "description": "the description for this gist",
|
|
" "files": {
|
|
" "file1.txt": {
|
|
" "content": "updated file contents"
|
|
" },
|
|
" "old_name.txt": {
|
|
" "filename": "new_name.txt",
|
|
" "content": "modified contents"
|
|
" },
|
|
" "new_file.txt": {
|
|
" "content": "a new file"
|
|
" },
|
|
" "delete_this_file.txt": null
|
|
" }
|
|
" }
|
|
" <
|
|
" PATCH : /gists/:id
|
|
" Note: All files from the previous version of the gist are carried over by default
|
|
" if not included in the object. Deletes can be performed by including the filename
|
|
" with a null object.
|
|
function! github#api#gist#Edit(desc,filename,content,public,user,password,id) abort
|
|
let data = {}
|
|
let data.description = a:desc
|
|
let data.public = a:public
|
|
call extend(data, {'files': {a:filename : {'content' :a:content}}})
|
|
return github#api#util#Get('gists/' . a:id, ['-d', json_encode(data), '-X', 'PATCH', '-u', a:user . ':' .a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List gist commits
|
|
"
|
|
" Github API : GET /gists/:id/commits
|
|
function! github#api#gist#ListCommits(id) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'commits'], '/'), [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Star a gist
|
|
"
|
|
" Github API : PUT /gists/:id/star
|
|
function! github#api#gist#Star(user,password,id) abort
|
|
return github#api#util#GetStatus(join(['gists', a:id, 'star'], '/'),
|
|
\ ['-X', 'PUT', '-u', a:user . ':' . a:password]) == 204
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Unstar a gist
|
|
"
|
|
" Github API : DELETE /gists/:id/star
|
|
function! github#api#gist#Unstar(user,password,id) abort
|
|
return github#api#util#GetStatus(join(['gists', a:id, 'star'], '/'),
|
|
\ ['-X', 'DELETE', '-u', a:user . ':' . a:password]) == 204
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Check if a gist is starred
|
|
"
|
|
" Github API : GET /gists/:id/star
|
|
function! github#api#gist#CheckStar(user,password,id) abort
|
|
return github#api#util#GetStatus(join(['gists', a:id, 'star'], '/'),
|
|
\ ['-u', a:user . ':' . a:password]) == 204
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Fork a gist
|
|
"
|
|
" Github API : POST /gists/:id/forks
|
|
function! github#api#gist#Fork(user,password,id) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'forks'], '/'),
|
|
\ ['-X', 'POST', '-u', a:user . ':' . a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List Fork of a gist
|
|
"
|
|
" Github API : GET /gists/:id/forks
|
|
function! github#api#gist#ListFork(user,password,id) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'forks'], '/'),
|
|
\ ['-u', a:user . ':' . a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Delete a gist
|
|
"
|
|
" Github API : DELETE /gists/:id
|
|
function! github#api#gist#Del(user,password,id) abort
|
|
return github#api#util#GetStatus(join(['gists', a:id], '/'),
|
|
\ ['-X', 'DELETE', '-u', a:user . ':' . a:password]) == 204
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List comments on a gist
|
|
"
|
|
" Github API : GET /gists/:gist_id/comments
|
|
function! github#api#gist#ListComments(id) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'comments'], '/') , [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Get a single comment
|
|
"
|
|
" Github API : GET /gists/:gist_id/comments/:id
|
|
function! github#api#gist#GetComment(gistid,commentid) abort
|
|
return github#api#util#Get(join(['gists', a:gistid, 'comments', a:commentid], '/'), [])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Create a comment
|
|
"
|
|
" Github API : POST /gists/:gist_id/comments
|
|
function! github#api#gist#CreateComment(id,user,password,body) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'comments'], '/'),
|
|
\ ['-X', 'POST', '-d', json_encode({'body':a:body}),
|
|
\ '-u', a:user . ':' . a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Edit a comment
|
|
"
|
|
" Github API : PATCH /gists/:gist_id/comments
|
|
function! github#api#gist#EditComment(id,user,password,body) abort
|
|
return github#api#util#Get(join(['gists', a:id, 'comments'], '/'),
|
|
\ ['-X', 'PATCH', '-d', json_encode({'body':a:body}),
|
|
\ '-u', a:user . ':' . a:password])
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Delete a comment
|
|
"
|
|
" Github API : DELETE /gists/:gist_id/comments/:id
|
|
function! github#api#gist#DelComment(gistid,id,user,password) abort
|
|
return github#api#util#GetStatus(join(['gists', a:gistid, 'comments', a:id], '/'),
|
|
\ ['-u', a:user . ':' . a:password]) == 204
|
|
endfunction
|