|
# -*- coding: utf-8 -*-
|
|
# make target project
|
|
# copy versions and categories from redmineorg
|
|
|
|
from redminelib import Redmine
|
|
from redminelib.exceptions import ResourceNotFoundError
|
|
from redminelib.exceptions import ServerError
|
|
|
|
import datetime
|
|
import time
|
|
|
|
|
|
# 認証情報と共通定義は別ファイルから読み込む
|
|
import authinfo
|
|
|
|
redmine_org_url=authinfo.redmine_org_url
|
|
redmine_copy_url=authinfo.redmine_copy_url
|
|
# redmine_tokyo_url=authinfo.redmine_tokyo_url
|
|
|
|
redmine_org_id =authinfo.redmine_org_id
|
|
redmine_org_pass=authinfo.redmine_org_pass
|
|
redmine_copy_key=authinfo.redmine_copy_key
|
|
#redmine_tokyo_key=authinfo.redmine_tokyo_key
|
|
|
|
redmine_org_pjname=authinfo.redmine_org_pjname
|
|
redmine_copy_pjname=authinfo.redmine_copy_pjname
|
|
|
|
vote_tracker_id=authinfo.vote_tracker_id
|
|
|
|
# connect redmine site
|
|
|
|
redmine_copy = Redmine(redmine_copy_url , key=redmine_copy_key)
|
|
# redmine_tokyo = Redmine(redmine_tokyo_url, key=redmine_tokyo_key)
|
|
redmine_org = Redmine(redmine_org_url, username=redmine_org_id, password=redmine_org_pass)
|
|
|
|
|
|
# make target project
|
|
|
|
project_copyto = redmine_copy.project.new()
|
|
|
|
project_copyto.name = redmine_copy_pjname
|
|
project_copyto.identifier = redmine_copy_pjname
|
|
project_copyto.description = redmine_copy_pjname
|
|
project_copyto.tracker_id=[vote_tracker_id]
|
|
project_copyto.save()
|
|
|
|
# get copyto project id
|
|
|
|
project_copyto = redmine_copy.project.get(redmine_copy_pjname)
|
|
|
|
project_copyto_id=project_copyto.id
|
|
print "made copyto project ", ",ID=",project_copyto_id,",identifier=",redmine_copy_pjname
|
|
|
|
# copy version definition
|
|
print "copy versions"
|
|
redmine_org_versions = redmine_org.version.filter(project_id=redmine_org_pjname)
|
|
|
|
redmine_org_last_versions = redmine_org.version.filter(project_id=redmine_org_pjname,limit=1,offset=len(redmine_org_versions)-1)
|
|
|
|
# get last version ID
|
|
|
|
last_version_id=redmine_org_last_versions[0].id
|
|
|
|
# create version definition .
|
|
# loop until last version ID
|
|
# because of deleted version definition.
|
|
|
|
for i in range(1,last_version_id+1):
|
|
version=redmine_copy.version.create(project_id=project_copyto_id,name=str(i))
|
|
|
|
# copy version definition from redmine-org to redmine-copy
|
|
# due_date and wiki_page_title
|
|
|
|
for old_version in redmine_org_versions:
|
|
redmine_copy.version.update(
|
|
old_version.id,
|
|
name=old_version.name,
|
|
status='open',
|
|
sharing=old_version.sharing,
|
|
# due_date=old_version.due_date,
|
|
description=old_version.description
|
|
# wiki_page_title=old_version.wiki_page_title
|
|
)
|
|
|
|
# copy issue_categories definition from redmine-org to redmine-copy
|
|
|
|
print "copy issue_categories"
|
|
redmine_org_pj = redmine_org.project.get(redmine_org_pjname,include=['issue_categories'])
|
|
|
|
redmine_org_issue_categories=redmine_org_pj.issue_categories
|
|
|
|
# get max(category_id)
|
|
|
|
max_category_id=0
|
|
for category in redmine_org_issue_categories:
|
|
# print category.id , category.name
|
|
if category.id>max_category_id:
|
|
max_category_id=category.id
|
|
|
|
# print max_category_id
|
|
|
|
# create version definition .
|
|
# loop until last version ID
|
|
# because of deleted version definition.
|
|
|
|
for i in range(1,max_category_id+1):
|
|
category=redmine_copy.issue_category.create(project_id=redmine_copy_pjname,name=str(i))
|
|
|
|
|
|
# copy category definition from redmine-org to redmine-copy
|
|
|
|
for old_issue_category in redmine_org_issue_categories:
|
|
redmine_copy.issue_category.update(
|
|
old_issue_category.id,
|
|
name=old_issue_category.name
|
|
# sharing=old_category.sharing,
|
|
# assigned_to_id=old_issue_category.assigned_to_id
|
|
)
|
|
# print old_issue_category.id,old_issue_category.name
|
|
|