이 Python 스크립트를 사용하여 전문가처럼 Github를 구성하세요.
뭐? 왜요?
여러분과 저는 매일 GitHub를 사용합니다. 여러분이 저와 같은 흥미로운 저장소를 자주 발견한다면, 빠르게 포크하고 미래의 어느 시점에서, 때로는 먼 미래에 그것을 가지고 놀기 위해 저장합니다 :)
내 GitHub가 이러한 Repos로 인해 너무 복잡해 보이기 시작하여 청소를 하기로 결정했습니다. 예, 브라우저를 사용하여 기본 계정에서 다른 계정으로 전송하려는 모든 단일 저장소를 지정, 클릭, 복사 및 붙여넣기하여 흥미로운 Repos를 안전하게 유지하고 기본 계정을 전문적으로 보이게 유지할 수 있습니다. 시간이 많이 걸리고 우리가 트위터에 대신 사용할 수 있는 시간을 명백하게 잘못 사용하고 소셜 미디어 영향력자가 되는 길에 있습니다.
어떻게? 시작하는 데 필요한 사항은 다음과 같습니다.
GitHub API를 사용하여 이 작업을 자동화할 것입니다. 🤖 스크립트용 가상 환경이 있는 Python과 API와 통신하기 위한 요청 라이브러리입니다.
토큰을 복사하고 curl로 빠르게 테스트합니다.
~ $ GITHUB_TOKEN="access_token"
~ $ curl -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/gists
제대로 작동했다면 모든 공개 요지 목록과 함께 유사한 안식을 받아야 합니다.
[
{
"url": "https://api.github.com/gists/4d5ab8adff9fc8b4cdf7d8e9dfa442c7",
"forks_url": "https://api.github.com/gists/4d5ab8adff9fc8b4cdf7d8e9dfa442c7/forks",
"commits_url": "https://api.github.com/gists/4d5ab8adff9fc8b4cdf7d8e9dfa442c7/commits",
"id": "4d5ab8adff9fc8b4cdf7d8e9dfa442c7",
"node_id": "MDQ6R2lzdDRkNWFiOGFkZmY5ZmM4YjRjZGY3ZDhlOWRmYTQ0MmM3",
"git_pull_url": "https://gist.github.com/4d5ab8adff9fc8b4cdf7d8e9dfa442c7.git",
"git_push_url": "https://gist.github.com/4d5ab8adff9fc8b4cdf7d8e9dfa442c7.git",
"html_url": "https://gist.github.com/4d5ab8adff9fc8b4cdf7d8e9dfa442c7",
"files": {
"views.py": {
"filename": "views.py",
"type": "application/x-python",
"language": "Python",
"raw_url": "https://gist.githubusercontent.com/jqn/4d5ab8adff9fc8b4cdf7d8e9dfa442c7/raw/7acabeae8db34dcae72fbb1dbb002557a70632ef/views.py",
"size": 347
}
},
...
]
내가 사용virtualenvwrapper
$ mkdir ~/www/automation
$ cd ~/www/automation
$ mkvirtualenv automation_hacks
(automation) $ automation
이제 가상 환경이 준비되었으므로 코딩을 시작하겠습니다.
$ touch github_hacks.py
$ pip install requests
$ pip freeze > requirements.txt
현재 디렉토리 구조입니다.
automation
├── github_hacks.py
└── requirements.txt
그리고 VSCode
$ code github_hacks.py
VSCode은 이 단계에 필요하지 않으므로 원하는 텍스트 편집기를 자유롭게 사용하십시오.
import requests
import sys
from pprint import pprint
import json
token = "access_token"
owner = sys.argv[1]
repo = sys.argv[2]
new_owner = sys.argv[3]
query_url = f"https://api.github.com/repos/{owner}/{repo}/transfer"
headers = {'Authorization': f'token {token}',
'Accept': 'application/vnd.github.v3+json'}
params = {
'new_owner': new_owner,
}
r = requests.post(query_url, headers=headers, data=json.dumps(params))
pprint(r.json())
$ python github_hacks.py owner repo new_owner
GitHub로 돌아가면 리포지토리가 새 소유자에게 이전되었습니다.
현재 이 스크립트는 한 번에 단일 Repo를 사용하지만 여러 Repo를 사용하여 다른 소유자/조직으로 전송하도록 확장할 수 있습니다.
이는 자신이 소유한 조직으로 이전할 때 가장 효과적입니다. 새 소유자에게 이전하는 경우 소유자가 먼저 이전을 수락해야 합니다.
트라이아웃PyGithub을 했지만 현재는 전송 저장소 기능이 없습니다. Github APIdocs에 나열된 다른 사용 준비가 된 라이브러리도 있지만 대부분 이 문서를 작성하는 시점에서 구식입니다.
질문? 문제? 주저하지 말고 아래에 연락하거나 의견을 말하십시오.
자원
Github Developer - Scopes
Github Rest API
requests
f-string Formatting in Python
Reference
이 문제에 관하여(이 Python 스크립트를 사용하여 전문가처럼 Github를 구성하세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jqn/quickly-clean-up-your-github-with-this-repo-transfer-utility-40cg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)