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()},
    )