1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 20:40:04 +08:00
SpaceVim/bundle/github.vim/autoload/github/api/user.vim
2022-04-28 21:46:05 +08:00

148 lines
4.2 KiB
VimL
Vendored

"List who the authenticated user is following:
"GET /user/following
function! github#api#user#ListFollowing(auth) abort
let following = []
for i in range(1,github#api#util#GetLastPage('user/following'))
call extend(following,github#api#util#Get('user/following?page=' . i, ['-H', 'Authorization:' . a:auth]))
endfor
return following
endfunction
""
" @public
" List the authenticated user's followers:
"
" Github API : GET /user/followers
function! github#api#user#GetFollowers(user,password) abort
return github#api#util#Get(join(['user', 'followers'], '/'),
\ ['-u', a:user . ':' . a:password])
endfunction
""
" @public
" Check if you are following a user
"
" Github API : GET /user/following/:username
function! github#api#user#CheckFollowing(username,user,password) abort
return github#api#util#GetStatus(join(['user', 'following', a:username], '/'),
\ ['-u', a:user . ':' . a:password]) == 204
endfunction
""
" @public
" follow a user
"
" Github API : PUT /user/following/:username
function! github#api#user#Follow(username,user,password) abort
return github#api#util#GetStatus(join(['user', 'following', a:username], '/'),
\ ['-X', 'PUT',
\ '-u', a:user . ':' .a:password]) == 204
endfunction
""
" @public
" List all orgs for the auth user.
"
" Github API : GET /user/orgs
function! github#api#user#ListOrgs(auth) abort
return github#api#util#Get(join(['user', 'orgs'], '/'),
\ ['-H', 'Authorization:' . a:auth])
endfunction
""
" @public
" Get your organization membership
"
" Github API : GET /user/memberships/orgs/:org
function! github#api#user#GetOrgMembership(user,password,org) abort
return github#api#util#Get(join(['user', 'memberships', 'orgs', a:org], '/'),
\ ['-u', a:user . ':' . a:password])
endfunction
""
" @public
" Edit your organization membership
"
" Input: >
" {
" "state": "active"
" }
" <
" Github API : PATCH /user/memberships/orgs/:org
function! github#api#user#EditOrgMembership(org,state,user,password) abort
return github#api#util#Get(join(['user', 'memberships', 'org', a:org], '/'),
\ ['-X', 'PATCH',
\ '-d', json_encode(a:state),
\ '-u', a:user . ':' . a:password])
endfunction
"Get the authenticated user
"GET /user
function! github#api#user#GetUser(username,password) abort
return github#api#util#Get('user' , ['-u', a:username . ':' . a:password])
endfunction
""
" @public
" Update the authenticated user
"
" Input >
" {
" "name": "monalisa octocat",
" "email": "octocat@github.com",
" "blog": "https://github.com/blog",
" "company": "GitHub",
" "location": "San Francisco",
" "hireable": true,
" "bio": "There once..."
" }
" <
" Github API : PATCH /user
function! github#api#user#UpdateUser(data,user,password) abort
return github#api#util#Get('user', ['-X', 'PATCH', '-d', a:data, '-u', a:user . ':' . a:password])
endfunction
""
" @public
" List emails for a user
"
" Github API : GET /user/emails
function! github#api#user#ListEmails(user,password) abort
return github#api#util#Get(join(['user', 'emails'], '/'),
\ ['-u', a:user . ':' . a:password])
endfunction
""
" @public
" Add email address(es)
"
" Github API : POST /user/emails
function! github#api#user#AddEmails(user,password,emails) abort
return github#api#util#Get(join(['user', 'emails'], '/'),
\ ['-X', 'POST',
\ '-d', json_encode(a:emails),
\ '-u', a:user . ':' . a:password])
endfunction
""
" @public
" Delete email address(es)
"
" Github API : DELETE /user/emails
function! github#api#user#DeleteEmails(user,password,emails) abort
return github#api#util#Get(join(['user', 'emails'], '/'),
\ ['-X', 'DELETE',
\ '-d', json_encode(a:emails),
\ '-u', a:user . ':' . a:password])
endfunction
""
" @public
" Unfollow a user
"
" Github API : DELETE /user/following/:username
function! github#api#user#UnFollow(username,user,password) abort
return github#api#util#GetStatus(join(['user', 'following', a:username], '/'),
\ ['-u', a:user . ':' . a:password]) == 204
endfunction