あなたの意図が正しければ、Jira リモート APIを使用するより簡単な方法があると思います。たとえば、XML-RPCライブラリを使用して、2 つのシステムを比較し、必要に応じて更新する Python スクリプトを簡単に作成できます。
あなたが提案した電子メール方式の問題は、問題作成の無限ループを簡単に作成できることです...
まず、両方のインスタンスでカスタム フィールドを作成し、「同期」などの名前を付けます。これは、問題を同期する際に問題をマークするために使用されます。
次に、RPC プラグインを有効にします。
最後に、RPC 経由で課題をコピーするスクリプトを作成します。例:
#!/usr/bin/python
# Sample Python client accessing JIRA via XML-RPC. Methods requiring
# more than basic user-level access are commented out.
#
# Refer to the XML-RPC Javadoc to see what calls are available:
# http://docs.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/com/atlassian/jira/rpc/xmlrpc/XmlRpcService.html
import xmlrpclib
s1 = xmlrpclib.ServerProxy('http://your.first.jira.url/rpc/xmlrpc')
auth1 = s1.jira1.login('user', 'password')
s2 = xmlrpclib.ServerProxy('http://your.second.jira.url/rpc/xmlrpc')
auth2 = s2.jira1.login('user', 'password')
# go trough all issues that appear in the next filter
filter = "10200"
issues = s1.jira1.getIssuesFromFilter(auth1, filter)
for issue in issues:
# read issues:
for customFields in issue['customFieldValues']:
if customFields['customfieldId'] == 'customfield_10412': # sync custome field
# cf exists , dont sync!
continue
# no sync field, sync now
proj = issue['project']
type = issue['type']
sum = issue['summary']
desc = issue['project']
newissue = s2.jira1.createIssue(auth2, { "project": issue['project'], "type": issue['type'], "summary": issue['summary'], "description": issue['description']})
print "Created %s/browse/%s" % (s.jira1.getServerInfo(auth)['baseUrl'], newissue['key'])
# mark issue as synced
s.jira1.updateIssue(auth, issue['key'], {"customfield_10412": ["yes"]})
スクリプトはテストされていませんが、動作するはずです。おそらく、残りのフィールドをコピーする必要があります。詳細については、このリンクを確認してください。また、これは一方向の同期にすぎません。逆方向にも同期する必要があります。