mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-04 05:00:03 +08:00
176 lines
5.6 KiB
VimL
176 lines
5.6 KiB
VimL
|
" List organization repositories
|
||
|
" GET /orgs/:org/repos
|
||
|
function! github#api#orgs#ListRepos(org) abort
|
||
|
let repos = []
|
||
|
for i in range(1,github#api#util#GetLastPage('orgs/' . a:org . '/repos'))
|
||
|
call extend(repos,github#api#util#Get('orgs/' . a:org . '/repos?page=' . i,[]))
|
||
|
endfor
|
||
|
return repos
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Get an organization
|
||
|
"
|
||
|
" Github API : GET /orgs/:org
|
||
|
function! github#api#orgs#Get(org) abort
|
||
|
return github#api#util#Get(join(['orgs', a:org], '/'), [])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Edit an organization
|
||
|
"
|
||
|
" Input: >
|
||
|
" {
|
||
|
" "billing_email": "support@github.com",
|
||
|
" "blog": "https://github.com/blog",
|
||
|
" "company": "GitHub",
|
||
|
" "email": "support@github.com",
|
||
|
" "location": "San Francisco",
|
||
|
" "name": "github",
|
||
|
" "description": "GitHub, the company."
|
||
|
" }
|
||
|
" <
|
||
|
" Github API : PATCH /orgs/:org
|
||
|
function! github#api#orgs#Edit(org,orgdata,user,password) abort
|
||
|
return github#api#util#Get(join(['orgs', a:org], '/'),
|
||
|
\ ['-X', 'PATCH', '-d', json_encode(a:orgdata),
|
||
|
\ '-u', a:user .':'. a:password])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" List all users who are members of an organization.
|
||
|
"
|
||
|
" {filter}Filter members returned in the list. Can be one of:
|
||
|
" * 2fa_disabled: Members without two-factor authentication enabled. Available for organization owners.
|
||
|
" * all: All members the authenticated user can see.
|
||
|
" * Default: all.
|
||
|
"
|
||
|
" {role}Filter members returned by their role. Can be one of:
|
||
|
" * all: All members of the organization, regardless of role.
|
||
|
" * admin: Organization owners.
|
||
|
" * member: Non-owner organization members.
|
||
|
" * Default: all.
|
||
|
"
|
||
|
" Github API : GET /orgs/:org/members
|
||
|
function! github#api#orgs#ListMembers(org,filter,role) abort
|
||
|
let url = join(['orgs', a:org, 'members'], '/')
|
||
|
if index(['2fa_disabled', 'all'], a:filter) == -1
|
||
|
let url = url . '?filter=all'
|
||
|
else
|
||
|
let url = url . '?filter=' . a:filter
|
||
|
endif
|
||
|
if index(['admin', 'member', 'all'], a:role) == -1
|
||
|
let url = url . '&role=all'
|
||
|
else
|
||
|
let url = url . '&role=' . a:role
|
||
|
endif
|
||
|
return github#api#util#Get(url,[])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Check if a user is, publicly or privately, a member of the organization.
|
||
|
"
|
||
|
" Status:
|
||
|
"
|
||
|
" * 204: requester is an organization member and user is a member
|
||
|
" * 404: requester is an organization member and user is not a member,
|
||
|
" requester is not an organization member and is inquiring about themselves
|
||
|
" * 302: requester is not an organization member
|
||
|
"
|
||
|
" Github API : GET /orgs/:org/members/:username
|
||
|
function! github#api#orgs#CheckMembership(org,username,user,password) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'members', a:username], '/'),
|
||
|
\ ['-u', a:user . ':' . a:password])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Remove a member
|
||
|
"
|
||
|
" Github API : DELETE /orgs/:org/members/:username
|
||
|
function! github#api#orgs#DeleteMember(org,username,user,password) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'members', a:username], '/'),
|
||
|
\['-u', a:user . ':' . a:password])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" List public members of an org
|
||
|
"
|
||
|
" Github API : GET /orgs/:org/public_members
|
||
|
function! github#api#orgs#ListPublicMembers(org) abort
|
||
|
return github#api#util#Get(join(['orgs', a:org, 'public_members'], '/'), [])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Check public membership
|
||
|
"
|
||
|
" Github API : GET /orgs/:org/public_members/:username
|
||
|
function! github#api#orgs#CheckPublicMembership(org,username) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'public_members', a:username], '/'), []) == 204
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Publicize a user's membership
|
||
|
" The user can publicize their own membership. (A user cannot publicize the membership for another user.)
|
||
|
"
|
||
|
" Github API : PUT /orgs/:org/public_members/:username
|
||
|
function! github#api#orgs#Publicize(org,user,password) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'public_members', a:user], '/'),
|
||
|
\ ['-X', 'PUT',
|
||
|
\ '-u', a:user . ':' . a:password]) == 204
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Conceal a user's membership
|
||
|
"
|
||
|
" Github API : DELETE /orgs/:org/public_members/:username
|
||
|
function! github#api#orgs#ConcealUser(org,user,password) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'public_members', a:user], '/'),
|
||
|
\ ['-X', 'DELETE',
|
||
|
\ '-u', a:user . ':' . a:password]) == 204
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Get organization membership
|
||
|
"
|
||
|
" Github API : GET /orgs/:org/memberships/:username
|
||
|
function! github#api#orgs#GetMemberships(org,username,user,password) abort
|
||
|
return github#api#util#Get(join(['orgs', a:org, 'memberships', a:username], '/'),
|
||
|
\ ['-u', a:user . ':' . a:password])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Add or update organization membership,use admin or member for {role}
|
||
|
"
|
||
|
" Github API : PUT /orgs/:org/memberships/:username
|
||
|
function! github#api#orgs#UpdateMembership(org,username,user,password,role) abort
|
||
|
let url = join(['orgs', a:org, 'memberships', a:username], '/')
|
||
|
if index(['admin', 'member'], a:role) == -1
|
||
|
let url .= '?role=member'
|
||
|
else
|
||
|
let url .= '?role=' . a:role
|
||
|
endif
|
||
|
return github#api#util#Get(url,['-X', 'PUT', '-u', a:user . ':' . a:password])
|
||
|
endfunction
|
||
|
|
||
|
""
|
||
|
" @public
|
||
|
" Remove organization membership
|
||
|
"
|
||
|
" Github API : DELETE /orgs/:org/memberships/:username
|
||
|
function! github#api#orgs#RemoveMembership(org,username,user,password) abort
|
||
|
return github#api#util#GetStatus(join(['orgs', a:org, 'memberships', a:username], '/'),
|
||
|
\ ['-X', 'DELETE',
|
||
|
\ '-u', a:user . ':' . a:password]) == 204
|
||
|
endfunction
|