Révision 35c29fad
Ajouté par Julien Enselme il y a environ 11 ans
- Suppression du module urllib (on utilise httplib2 à la place)
- clarification des urls
- On modifie le corps du commentaire pour savoir qui a dit quoi même si la clé API n’est pas disponible
scripts_divers/migrer_taches_vers_redmine/goto_redmine.py | ||
---|---|---|
2 | 2 |
import comments_parser |
3 | 3 |
import submiters_parser |
4 | 4 |
import url_parser |
5 |
import urllib.request |
|
6 | 5 |
import httplib2 |
7 | 6 |
import json |
8 | 7 |
import re |
... | ... | |
23 | 22 |
|
24 | 23 |
h = httplib2.Http() |
25 | 24 |
|
26 |
for url in urls: |
|
27 |
nid = nids[urls.index(url)] |
|
28 |
|
|
29 |
page = urllib.request.urlopen('url')
|
|
25 |
for post_url in urls:
|
|
26 |
nid = nids[urls.index(post_url)]
|
|
27 |
resp, page = h.request(post_url, 'GET') |
|
28 |
page = page.decode('utf-8')
|
|
30 | 29 |
txt = page.read() |
31 | 30 |
#tout les scripts fonctionnent en lisant ligne à ligne le fichier. |
32 | 31 |
#la liste input permet de mimer ce comportement |
... | ... | |
49 | 48 |
|
50 | 49 |
iid = re.findall(r',"id":([0-9]*),', content.decode('utf-8'))[0] |
51 | 50 |
|
51 |
#on a besoin de l’url à laquelle on met les commentaires, pour changer le status |
|
52 |
put_url = '' |
|
52 | 53 |
for index, comment in enumerate(comments): |
53 |
submiter = submiters[index + 1] #le premier est celui qui a soumis le node |
|
54 |
Headers['X-Redmine-API-Key'] = give_api_key(submiters[0]) |
|
55 |
|
|
56 |
h.request(URL + '/' + iid + '.json', 'PUT', body=data, headers=Headers) |
|
54 |
submiter = submiters[index + 1] #le premier est celui qui a soumis le node |
|
55 |
Headers['X-Redmine-API-Key'] = give_api_key(submiter) |
|
56 |
#si la personne n’a pas sa clé, on modifie le commentaire |
|
57 |
if not submiter in SUBMITERS: |
|
58 |
comment = "{} a dit que {}".format(submiter, comment) |
|
59 |
update = {} |
|
60 |
update['issue'] = {'notes': comment} |
|
61 |
data = json.dumps(update) |
|
62 |
put_url = URL + '/' + iid + '.json' |
|
63 |
h.request(put_url, 'PUT', body=data, headers=Headers) |
|
57 | 64 |
|
58 | 65 |
#Les taches sont crées avec le status nouveau peu importe ce qu’il y a dans le json |
59 | 66 |
#on modifie le status après coup |
60 |
update_status = '{"issue": {"status_id":' + node['status_id'] + '}}' |
|
67 |
update_status = {'issue': {'status_id': node['status_id']}} |
|
68 |
data = json.dumps(update_status) |
|
69 |
h.request(put_url, 'PUT', body=data, headers=Headers) |
Formats disponibles : Unified diff