Python 获取错误“';存储库';对象没有属性';创建部署&x27&引用;使用PyGithub API时
我正在尝试使用Python 获取错误“';存储库';对象没有属性';创建部署&x27&引用;使用PyGithub API时,python,github,pygithub,Python,Github,Pygithub,我正在尝试使用PyGithub()获取部署并在其他地方报告状态。我有以下脚本: from github import Github # Github Enterprise with custom hostname g = Github(base_url="https://{hostname}/api/v3", login_or_token="sometoken") # get the repository repo = g.get_repo("
PyGithub
()获取部署并在其他地方报告状态。我有以下脚本:
from github import Github
# Github Enterprise with custom hostname
g = Github(base_url="https://{hostname}/api/v3", login_or_token="sometoken")
# get the repository
repo = g.get_repo("PyGithub/PyGithub")
# HTTP POST to /repos/:owner/:repo/deployments
deployment = repo.create_deployment(ref = 'master', environment = 'DEV', description= 'Deploying to the environment')
# getting the status
status = deployment.get_status(deployment.id)
# HTTP POST to /repos/:owner/:repo/deployments/:deployment_id/statuses
deployment.create_status(state = status.state, environment = 'DEV', description = 'deploying completed')
但它抱怨:
“存储库”对象没有“创建部署”属性
当我看到()中的函数时
我错过了什么
我基本上想使用这两个端点。我在python中找不到任何其他github API,但即使这样也可以。首先,确保您使用的是PyGithub的更新版本 仅在上添加了部署API
- 发行说明: “添加部署API()”
- PR#1424: 添加一个新类Deployment来描述使用 github。将三个方法添加到存储库中,列出并创建它们
如果您首先使用,请确保您使用的是PyGithub的更新版本 仅在上添加了部署API
- 发行说明: “添加部署API()”
- PR#1424: 添加一个新类Deployment来描述使用 github。将三个方法添加到存储库中,列出并创建它们
如果您正在使用,非常感谢。这更有意义。我只有一个问题。如果我们先创建一个状态,它会被更新吗?当我运行
create_deployment()
和create_status()
时,我会得到环境和它旁边的statename
。状态将如何更改为success
?这些步骤不应该是这样的吗?我们创建一个部署->使用部署id->检查状态->发布状态,然后?@amyJ PyGithub API只是调用Github的API,所以我建议先阅读Github关于部署的文档:。部署状态是一种允许“外部服务将部署标记为错误、失败、挂起、进行中、排队或成功状态的方式,侦听部署状态事件的系统可以使用这些状态”。在该图中,您的脚本是“工具”,然后一些“第三方”服务可能是创建和更新部署状态的服务。@amyJ“这些步骤不应该是这样的吗,我们创建一个部署->使用部署id->检查状态->发布状态?”:嗯,您不能将工作流强制到API上。相反:根据可用的API调整您的工作流。如果只是在“工具”和“Github”之间,那么您可能根本不需要创建/更新部署状态。您可以在创建的部署上调用get_status
,检查每个部署的状态(由其他一些Github服务更新)。非常感谢。这更有意义。我只有一个问题。如果我们先创建一个状态,它会被更新吗?当我运行create_deployment()
和create_status()
时,我会得到环境和它旁边的statename
。状态将如何更改为success
?这些步骤不应该是这样的吗?我们创建一个部署->使用部署id->检查状态->发布状态,然后?@amyJ PyGithub API只是调用Github的API,所以我建议先阅读Github关于部署的文档:。部署状态是一种允许“外部服务将部署标记为错误、失败、挂起、进行中、排队或成功状态的方式,侦听部署状态事件的系统可以使用这些状态”。在该图中,您的脚本是“工具”,然后一些“第三方”服务可能是创建和更新部署状态的服务。@amyJ“这些步骤不应该是这样的吗,我们创建一个部署->使用部署id->检查状态->发布状态?”:嗯,您不能将工作流强制到API上。相反:根据可用的API调整您的工作流。如果只是在“工具”和“Github”之间,那么您可能根本不需要创建/更新部署状态。您可以在创建的部署上调用get_status
,并检查每个部署的状态(由其他一些Github服务更新)。
def get_status(self, id_):
"""
:calls: `GET /repos/:owner/deployments/:deployment_id/statuses/:status_id <https://developer.github.com/v3/repos/deployments/#get-a-deployment-status>`_
:param id_: int
:rtype: :class:`github.DeploymentStatus.DeploymentStatus`
"""
assert isinstance(id_, int), id_
headers, data = self._requester.requestJsonAndCheck(
"GET",
self.url + "/statuses/" + str(id_),
headers={"Accept": self._get_accept_header()},
)