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
88 lines
2.5 KiB
VimL
88 lines
2.5 KiB
VimL
let s:HTTP = SpaceVim#api#import('web#http')
|
|
|
|
|
|
""
|
|
" @public
|
|
" Get all users
|
|
"
|
|
" Github API : GET /users
|
|
function! github#api#users#GetAllUsers() abort
|
|
return github#api#util#Get('users', [])
|
|
endfunction
|
|
|
|
|
|
function! github#api#users#starred(user, page) abort
|
|
let result = s:HTTP.get('https://api.github.com/users/' .
|
|
\ a:user . '/starred' . '?page=' . a:page)
|
|
if result.status ==# 200
|
|
return json_decode(result.content)
|
|
endif
|
|
" if the command run failed, return empty list
|
|
return []
|
|
endfunction
|
|
|
|
function! github#api#users#starred_pages(user) abort
|
|
let result = s:HTTP.get('https://api.github.com/users/' . a:user . '/starred')
|
|
if result.status ==# 200
|
|
let i = filter(result.header, 'v:val =~# "^Link"')[0]
|
|
return split(matchstr(i,'=\d\+',0,2),'=')[0]
|
|
endif
|
|
return 0
|
|
endfunction
|
|
|
|
function! github#api#users#GetStarred(user) abort
|
|
let rel = []
|
|
let pages = github#api#users#starred_pages(a:user)
|
|
for page in range(1,pages)
|
|
let repos = github#api#users#starred(a:user, page)
|
|
for repo in repos
|
|
call add(rel, repo)
|
|
endfor
|
|
endfor
|
|
return rel
|
|
endfunction
|
|
|
|
" get a single user
|
|
" GET /users/:username
|
|
function! github#api#users#GetUser(username) abort
|
|
return github#api#util#Get('users/' . a:username, [])
|
|
endfunction
|
|
|
|
"List followers of a user
|
|
"GET /users/:username/followers
|
|
function! github#api#users#ListFollowers(username) abort
|
|
let followers = []
|
|
for i in range(1,github#api#util#GetLastPage('users/' . a:username . '/followers'))
|
|
call extend(followers,github#api#util#Get('users/' . a:username . '/followers?page=' . i, []))
|
|
endfor
|
|
return followers
|
|
endfunction
|
|
|
|
"List users followed by another user
|
|
"GET /users/:username/following
|
|
function! github#api#users#ListFollowing(username) abort
|
|
let following = []
|
|
for i in range(1,github#api#util#GetLastPage('users/' . a:username . '/following'))
|
|
call extend(following,github#api#util#Get('users/' . a:username . '/following?page=' . i, []))
|
|
endfor
|
|
return following
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" List orgs of a specified user.
|
|
"
|
|
" Github API : /users/:username/orgs
|
|
function! github#api#users#ListAllOrgs(user) abort
|
|
return github#api#util#Get(join(['users', a:user, 'orgs'], '/'))
|
|
endfunction
|
|
|
|
""
|
|
" @public
|
|
" Check if one user follows another
|
|
"
|
|
" Github API : GET /users/:username/following/:target_user
|
|
function! github#api#users#CheckTargetFollow(username,target) abort
|
|
return github#api#util#GetStatus(join(['users', a:username, 'following', a:target], '/'),[])
|
|
endfunction
|