대상 github 계정의 모든 저장소에서 지정한 Collaborators를 제거합니다.
대상 github 계정의 모든 저장소에서 지정한 Collaborators를 제거합니다.
안녕하십니까?
이번에github 계정의 모든 저장소에서 같은 Collaborators를 한꺼번에 삭제하는 스크립트를 만들었습니다.나는 회사 내에서 공유된 계좌에서 구성원을 이탈하는 경우에 유효하다고 생각한다.(자신이 퇴사해야 하기 때문에 수동으로 Collaborators를 삭제하는 것이 귀찮아서 w를 만들었다)
자세한 내용은 이쪽 Rin을 확인하세요.
총체적
remove.php
/**
* GLOBAL
* gitアカウントのメールアドレス
* ログインパスワード
* githubのアカウント名
* 削除したいユーザー
* を入力してください。
*/
$Email = '';
$PASS = '';
$USER = '';
$DELTE_USER = '';
/**
* 下記のAPIを実行し、api.jsonを作成してください。別途アクセストークンが必要です。
* curl "https://api.github.com/user/repos?access_token={token}&per_page=100&page=1&sort=created" > api.json
*/
$url = './api.json';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json,true);
echo $count = count($arr);
for ($i = 0; $i < $count; ++$i) {
$repoName = $arr[$i]['name'];
$cmd = "curl -X DELETE -u $Email:$PASS 'https://api.github.com/repos/$USER/$repoName/collaborators/$DELTE_USER'";
echo $repoName;
echo exec($cmd);
}
사용 방법
먼저 Github의 Github부터 APIKEY를 생성합니다.Select scopes의 repo를 확인하십시오.
setting
방문 영패를 받은 후 다음 명령을 실행하고api를 실행합니다.json을 만듭니다.
.bashcurl "https://api.github.com/user/repos?access_token={token}&per_page=100&page=1&sort=created" > api.json
remove.php의 변수를 지정합니다.
remove.php$Email = '[email protected]';
$PASS = 'password';
$USER = 'MYACCOUNT';
$DELTE_USER = 'user_id';
remove.php를 실행합니다.
.bashphp remove.php
주의사항
/**
* GLOBAL
* gitアカウントのメールアドレス
* ログインパスワード
* githubのアカウント名
* 削除したいユーザー
* を入力してください。
*/
$Email = '';
$PASS = '';
$USER = '';
$DELTE_USER = '';
/**
* 下記のAPIを実行し、api.jsonを作成してください。別途アクセストークンが必要です。
* curl "https://api.github.com/user/repos?access_token={token}&per_page=100&page=1&sort=created" > api.json
*/
$url = './api.json';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json,true);
echo $count = count($arr);
for ($i = 0; $i < $count; ++$i) {
$repoName = $arr[$i]['name'];
$cmd = "curl -X DELETE -u $Email:$PASS 'https://api.github.com/repos/$USER/$repoName/collaborators/$DELTE_USER'";
echo $repoName;
echo exec($cmd);
}
curl "https://api.github.com/user/repos?access_token={token}&per_page=100&page=1&sort=created" > api.json
$Email = '[email protected]';
$PASS = 'password';
$USER = 'MYACCOUNT';
$DELTE_USER = 'user_id';
php remove.php
curl "https://api.github.com/user/repos?access_token={token}&per_page=100&page=2&sort=created" > api_2.json
remove.php$url = './api_2.json';
이 스크립트는 정상적인 사용자 계정에서 조작을 보장하지만, 가능하다, ~할 수 있다,...
아래의 API를 사용하면 같은 일이 가능할 것 같습니다.(검증되지 않았습니다.)
참조
curl "https://api.github.com/orgs/repos?access_token={token}&per_page=100&page=1&sort=created" > api.json
매혹적인 곳
액세스 영패를 사용하면 - u 옵션과 같은 사용자를 지정할 필요가 없습니다.(오히려 지정하면 잘 얻지 못했다.)
Reference
이 문제에 관하여(대상 github 계정의 모든 저장소에서 지정한 Collaborators를 제거합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/RinT_T/items/4e9225e22580f8b5b09d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)