2017-12-22 25 views
2

안녕하세요 모두 내 조직에 공동 작업자를 추가하십시오. github api를 통해 Laravel을 사용하고 있습니다. Graham \ Github 패키지에 KnpLabs/php-github-api가 설치되어 있습니다. .새로운 공동 작업자 Github API를 초대하십시오 - Laravel PHP

기존의 멤버를 var_dump 할 때 멤버 상태로 배열을 얻었지만 매번 수동으로 멤버를 추가 할 수는 없습니다.

실제로 모든 github 사용자에게 github api를 사용하여 회원으로 가입하라는 초대장을 보내고 싶습니다.

Add or update team membership Default role member for teams

사용자가 팀의 조직과 연계되지 않은 경우 Default role member for organisations

Add user as a collaborator

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', '[email protected]')->name('createMember'); 

미리 감사드립니다!

+1

게시 한 첫 번째 링크에는 404가 반환되는 경우가 몇 가지 있습니다. 페이지에서 404를 검색하고 조건에 맞는 것이 있는지 확인하십시오. – Tpojka

+0

감사합니다. 방금 확인했습니다. **이 상태는 내가 조직 회원이되도록 사용자를 초대하고 싶습니다. ** 요청자가 조직 회원이고 사용자가 회원이 아닌 경우 응답 ** 상태 : 404 찾을 수 없음 이 스레드에 게시 된 첫 번째 링크로 돌아 가기 링크가 있습니다 : 인증 된 사용자가 조직에 구성원을 추가하는 경우 초대 된 사용자는 조직에 초대하는 전자 메일을 받게되지만 오류는 발생하지 않습니다 우리가 어떻게 여기서 마술을 작동시킬 수 있는지 발견했습니다. –

+0

사용자가 이미 회원 인 경우 여러 가지 방법을 모두 시도해 보았습니다.하지만 api 호출을 통해 초대를 받아 조직에 새로운 멤버를 초대하거나 팀 레보에 초대 할 수 없습니다. 내 프로젝트에이 기능을 추가하는 방법에 대한 ressources가 정말 부족합니다. 제안 사항을 크게 높이 평가했습니다. –

답변

1

내가 이미 존재했던 라이브러리 함수를 코딩하려고 할 때 문제가 발견되었습니다.

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);