プロジェクト

全般

プロフィール

気づき #902 » presetting.py

奈良 裕記, 2018/12/23 20:57

 
# -*- 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

(3-3/15)