GitHub API λ κ²μμ 1000κ°μ κ²°κ³Όλ‘ μ νν©λλ€ . μ΄ μ νμ GitHub.search_issues μ κ°μ΄ PyGitHub λ₯Ό ν΅ν΄ μνλλ κ²μμ μν₯μ μ€λλ€.
κ·νμ κ²μμ΄ μ΄ νλμ λλ¬νλ€λ νμκ° μλ κ² κ°μ΅λλ€. μ κ° μκ³ μλ μμΈλ μ€λ₯λ μμ΅λλ€. μλ§λ μ΄λ° μΌμ΄ λ°μνμ λ μμΈκ° λ°μν΄μΌ ν©λλ€(νμ§ν μ μλ κ²½μ°).
μ¬λ¬ κ²μ 쿼리λ₯Ό μ€ννμ¬ μ΄ μ νμ ν΄κ²°ν μ μμ§λ§ μ΄λ¬ν 쿼리λ 쿼리μ νΉμ λͺ©νμ λ§κ² μ‘°μ λμ΄μΌ ν©λλ€(μ: μ μ§μ λ μ§ λ²μλ‘ search_issues λ°λ³΅). μ΄λ₯Ό μΌλ°νν λ°©λ²μ΄ μκ°λμ§ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ λν μκ°μ΄ μμ΅λκΉ? μΌλ°μ μΈ ν΄κ²°μ± μ΄ μμ΅λκΉ?
μ΄ λ¬Έμ λ κ²°κ³Όμ μλ μ ν λλ νμ΄μ§ 맀κΉκ³Ό κ΄λ ¨μ΄ μμ΅λλ€.
λ€μμ 1000κ° μ΄μμ κ²°κ³Όκ° μλ κ²½μ°μλ λ μ§ λ²μμ λͺ¨λ pull μμ²μ κ²μνλ λ°©λ²μ 보μ¬μ£Όλ ν΄κ²° λ°©λ²μ λλ€.
νΈμ§: λλ μ΄κ²μ ν΄λμ€λ³΄λ€ λ κ°λ¨νκ² λ§λλ λ°©λ²μΌλ‘ λ€μ μμ±ν κ²μ λλ€.
class PullRequestQuery:
def __init__(self, git, repo, since, until):
self.git = git
self.repo = repo
self.until = until
self.issues = self.__query(since, until)
def __iter__(self):
skip = False
while True:
results = False
for issue in self.issues:
if not skip:
results = True
yield issue.as_pull_request()
skip = False
# If no more results then stop iterating.
if not results:
break
# Start new query picking up where we left off. Previous issue will be first one returned, so skip it.
self.issues = self.__query(issue.closed_at.strftime('%Y-%m-%dT%H:%M:%SZ'), self.until)
skip = True
def __query(self, since, until):
querystring = 'type:pr is:closed repo:%s/%s closed:"%s..%s"' % (self.repo.organization.login, self.repo.name, since, until)
return self.git.search_issues(query=querystring, sort="updated", order="asc")
μ΄ ν΄λμ€λ₯Ό μ¬μ©νλ©΄ μ΄μ λ€μκ³Ό κ°μ μμ μ μνν μ μμ΅λλ€.
git = Github(user, passwd)
org = git.get_organization(orgname)
repo = org.get_repo(reponame)
for pull in PullRequestQuery(git, repo, "2017-01-01", "2017-12-31"):
print "%s: %s" % (pull.number, pull.title)
κ²μμ λν Github API λ¬Έμλ₯Ό μ½μΌλ©΄ PyGithubμμ κ²μ κ²°κ³Ό νλ‘μΈμ€μ μΌλΆλ‘ incomplete_results
κ° λλ½λμμμ μ μ μμ΅λλ€. μλ§λ ν΄λΉ κ°μ ν¬ν¨νλ©΄ κ²μ κ²°κ³Όκ° (λΆ)μμ νμ§ μ¬λΆλ₯Ό κ°μ§νλ λ° μ΄λ―Έ λμμ΄ λ μ μμ΅λλ€.
μ΄μ PyGithubμ΄ λΆκΈ°λμ΄ μμ€μμ λ‘μ»¬λ‘ μ€νλμμΌλ―λ‘(#606μ λ³΄κ³ μμ΅λλ€) μλ§λ μ΄κ²μ λ μ‘°μ¬ν μ μμ΅λλ€.
μ΄ λ¬Έμ λ μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ€λλ κ²μΌλ‘ νμλμμ΅λλ€. λ μ΄μ νλμ΄ μμΌλ©΄ νμλ©λλ€. κ·νμ κΈ°μ¬μ κ°μ¬λ립λλ€.
μ΄ λ¬Έμ λ₯Ό λ€μ μ¬μκ² μ΅λκΉ?
λ€λ₯Έ κ²μμ λν μΌλ°μ μΈ μ루μ
λ
κ°μ₯ μ μ©ν λκΈ
μ΄ λ¬Έμ λ₯Ό λ€μ μ¬μκ² μ΅λκΉ?
λ€λ₯Έ κ²μμ λν μΌλ°μ μΈ μ루μ λ