在Jira服务器中自动创建项目

问题描述 投票:0回答:1

我想 自动 在Jira(服务器)中创建项目。在我们的服务器中,我们使用的是我们自己的工作流、问题类型、通知方案、权限、字段、屏幕、优先级方案。同时在创建项目后,我们需要将这个项目添加到一些自定义字段、脚本监听器、需求项目Xrays和Behaviours中。

我们尝试使用 但后来我们才知道,每次部署或升级后,我们的UI都会发生变化。然后,我研究了很多使用Rest-API的方法,但仍然无法找到一种方法来使用我们自己的配置来做这个项目。因为这是一个Jira服务器,我们只能使用 Rest-API第2版. ~https:/docs.atlassian.comsoftwarejiradocsapiREST7.13.0#api2project-createProject。

谁能给我点建议,有什么方法可以让我的Jira服务器项目创建自动化?

顺便说一下,我们正在使用 Jira版本 - 7.13.6

注意事项 推荐语言 - Python

python-requests jira jira-rest-api python-jira
1个回答
0
投票

我有同样的问题。因此,它的很多工作,Jira API是真的...坏。

因此,在第一,用户Tarique是正确的。首先使用请求。注意,你不必json.dumps(...)这个,你可以只添加json=payload在request.post部分。让我们进入下一个问题。

你必须寻找Scheme-IDs。即使你有正确的ID,项目仍然没有配置。所以你必须自己设置董事会。你不能通过API来做这件事,有一种方法可以看到配置,所以--GET配置。但你不能设置配置。我花了三天的时间来寻找一个解决方案,但我放弃了,以后会做这个。

这里是一个非官方的Endpoint。

https://ur-domain.net/rest/project-templates/1.0/createshared/projectID

所以这个端点基本上是一个项目的副本,你在项目ID中指定。他们说,你能够复制一个项目,其所有的配置和设置。但如果你这样做,这个项目是... 禁用的,你不能用它工作。所以,我试图更新这个项目,给他的计划和模板。什么都不行。

所以有一些附加组件你可以使用,他们将复制整个项目为你。他们中的一些是免费的,其中一些不是。在我的研究中,如果发现没有办法克隆一个项目或通过API添加ConfigsSettings到它。你写一个程序,可以为你做这个。你也可以尝试导出项目并以另一个名字导入它。我在一个论坛上读到过这个,但对我来说这不是一个选择。

所以,也许你应该问支持。你可以联系你的管理员,并告诉他,他应该告诉支持,因为没有工作方法来克隆一个项目1:1。

我希望我可以帮到你一点,我知道我的英语不好,我想说的有点不清楚。我只想告诉你,我们也尝试了很多东西,所以我不希望你也要做同样的事情。

如果你想明白了什么,请告诉我! 如果你愿意,我可以把Python中的请求也发给你。(对于计划,创建项目和类似的东西)!

我希望这能帮助你,并随时与我分享或要求更多的信息!

EDIT.这里是创建项目的链接。

这里有一个创建项目的链接。 https:/docs.atlassian.comsoftwarejiradocsapiREST7.13.0#api2project-createProject。

这里有一个通过请求Libary创建项目的Python实例。

def createAProject():

url = "https://ur-domain.net/rest/api/2/project"

auth = getAuth()
headers = getheader()

payload =  {
    "leadAccountId": "insertLeadIDHere",
    "projectTemplateKey": "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic",
    "name": "Name of the Project",
    "key": "The new Key",
    "issueSecurityScheme" : "SchemeID",
    "projectTypeKey": "TypeKey",
    "permissionScheme": "PermissionID",
    "notificationScheme": "NotificationID"
} 


try:
    response = requests.post(
        url,
        json=payload,
        headers=headers,
        auth=auth
    )

    response.raise_for_status()

except HTTPError as err:
    return response.status_code
else:
    return response.status_code
© www.soinside.com 2019 - 2024. All rights reserved.