嘿大家我正在尝试通过github api向我的组织添加一个协作者我正在使用Laravel我已经使用KnpLabs / php-github-api安装了Graham \ Github包。
当我var_dump一个已经存在的成员时,我得到一个与成员状态一样好的数组,但我每次都不能手动添加成员。
我想实际向任何github用户发送邀请,以使用github api作为成员加入该组织。
Add or update organization membership
如果用户与团队的组织无关,则此端点将通过电子邮件向用户发送邀请。这个新创建的成员资格将处于“待处理”状态,直到用户接受邀请,此时成员资格将转换为“活动”状态,并且用户将被添加为团队成员。要在非附属用户和团队之间添加成员身份,经过身份验证的用户必须是组织所有者。
我在库中添加的所有功能都与现有用户一起工作但在我尝试邀请可能出错的时候找不到错误?
public function createOrgMember($org, $username)
{
return $this->get('/orgs/'.rawurlencode($org).'/memberships/'.rawurlencode($username));
}
public function addCollaborator($owner, $repo, $username)
{
return $this->get('/repos/'.rawurlencode($owner).'/'.rawurlencode($repo).'/collaborators/'.rawurlencode($username));
}
public function createTeamMember($id, $username)
{
return $this->get('/teams/'.rawurlencode($id).'/memberships/'.rawurlencode($username));
}
这适用于现有用户,但不会邀请新用户我找不到错误
public function createMember()
{
GitHub::connection('main')->organizations()->createOrgMember('retry24', 'project24retry');
}
array:6 [▼
"url" => "https://api.github.com/orgs/retry24/memberships/project24retry"
"state" => "active"
"role" => "admin"
"organization_url" => "https://api.github.com/orgs/retry24"
"user" => array:17 [▶]
"organization" => array:11 [▶]
]
但这不起作用
public function createMember()
{
GitHub::connection('main')->organizations()->createOrgMember('retry24', 'david-dacruz');
}
这是表格
{{ Form::open(['route' => 'frontend.user.createMember',
'method' => 'PUT'
])}}
{{ Form::submit('Submit', ['type' => 'submit']) }}
{{ Form::close() }}
路线
Route::put('dashboard/github', 'DashboardController@createMember')->name('createMember');
谢谢!
我发现了我试图编写已经存在的库函数的问题。
Organizations.php类
use Github\Api\Organization\Members;
public function members()
{
return new Members($this->client);
}
在这个类中,我想要创建的方法已经存在:
Members.php
namespace Github\Api\Organization;
public function add($organization, $username)
{
return $this->put('orgs/'.rawurlencode($organization).'/memberships/'.rawurlencode($username));
}
然后,您可以邀请一个成员,就像邀请将要等待,并且用户将收到一个邮件加入组织,一旦他或她已经接受加入,该成员的状态将从挂起变为活动。
GitHub::connection('other')->organizations()->members()->add($organization, $username);