Révision a2a6f2e9
Ajouté par Julien Enselme il y a presque 11 ans
scripts_divers/migrer_taches_vers_redmine/goto_redmine.py | ||
---|---|---|
3 | 3 |
""" |
4 | 4 |
|
5 | 5 |
import url_parser #permet de connaître les id des taches |
6 |
import urllib.request |
|
7 |
import httplib2 |
|
6 |
import urllib.request #permet de récupérer une page web
|
|
7 |
import httplib2 #pour faire des requêtes http
|
|
8 | 8 |
import json |
9 |
import re |
|
10 |
import os |
|
9 |
import re #pour les expressions régulières
|
|
10 |
import os #pour pouvoir faire appel à pandoc (commande system)
|
|
11 | 11 |
|
12 |
######## NB : cid : comment id, nid : node id, urls : urls des tâches |
|
13 |
|
|
14 |
#Dictionnaire des gens dont on a la clé API |
|
15 |
#id: clé |
|
12 | 16 |
SUBMITERS = {'jenselme': '464c7c05b9bb53fb136092f1b9807ad91ec51321'} |
17 |
|
|
18 |
#les entêtes des requêtes POST et PUT |
|
13 | 19 |
Headers = {'content-type': 'application/json', 'X-Redmine-API-Key': ''} |
20 |
|
|
21 |
#là où on poste les tâches |
|
14 | 22 |
URL = 'https://forge.centrale-marseille.fr/issues' |
23 |
|
|
24 |
#là où sont les tâches |
|
15 | 25 |
LIST_TODO = 'http://localhost/portail/liste-tache' |
26 |
|
|
27 |
#url de base de l’emplacement du contenu |
|
16 | 28 |
BASE_URL = 'http://localhost/portail' |
17 | 29 |
PROJECT_ID = 30 |
18 | 30 |
TRACKER_ID = 2 |
31 |
|
|
32 |
|
|
33 |
########## dictionnaires de correspondance |
|
19 | 34 |
DONE_RATIO = {'En pause': 50, 'À commencer': 0, 'Entamée': 20, 'Bien avancée': 80, 'Terminée (success)': 100, 'Fermée (won\'t fix)': 100} |
20 | 35 |
PRIORITY = {'5 - Très basse': 3, '4 - Basse': 3, '3 - Moyenne': 4, '2 - Haute': 5, '1 - Très haute': 6,\ |
21 | 36 |
'Très basse': 3, 'Basse': 3, 'Moyenne': 4, 'Haute': 5, 'Très haute':6,\ |
22 | 37 |
'0': 3, '1': 3, '2': 4, '3': 5, '4': 6} |
23 | 38 |
STATUS = {'En cours': 2, 'Fermée': 5, 'Rejetée': 6, 'En pause': 7} |
24 |
#NB : 17 : drupal6, 18 : drupal7 |
|
39 |
#NB sur le portail, on a les équivalences suivantes |
|
40 |
#pour le champ version de drupal : 17 : drupal6, 18 : drupal7 |
|
25 | 41 |
DRUPAL_VERSION = {'17': 2, '18': 1} |
26 | 42 |
|
27 | 43 |
def give_api_key(submiter): |
44 |
"Donne la clé API de submiter ou celle de jenselme si c’est la seule" |
|
28 | 45 |
if submiter in SUBMITERS: |
29 | 46 |
return SUBMITERS[submiter] |
30 | 47 |
else: |
... | ... | |
32 | 49 |
|
33 | 50 |
|
34 | 51 |
def give_comments_ids(nid): |
52 |
"permet de récupérer les id des commentaires de la tâche nid" |
|
35 | 53 |
page = urllib.request.urlopen(BASE_URL + '/entity_json/node/' + nid).read() |
36 | 54 |
page_json = json.loads(page.decode('utf-8')) |
37 | 55 |
comments_json = page_json['comments'] |
... | ... | |
45 | 63 |
|
46 | 64 |
|
47 | 65 |
def give_comments(cids): |
66 |
"Donne la liste du texte des commentaires pour chaque cid in cids" |
|
48 | 67 |
comments = list() |
49 | 68 |
for cid in cids: |
50 | 69 |
comment = urllib.request.urlopen(BASE_URL + '/comment/' + cid + '.json').read() |
... | ... | |
53 | 72 |
|
54 | 73 |
|
55 | 74 |
def format(txt): |
75 |
"prend le texte en html et le renvoie en textile" |
|
56 | 76 |
txt.replace('\n', '') |
57 | 77 |
txt.replace('\t', '') |
58 | 78 |
with open('tmp.html', 'w') as f: |
... | ... | |
101 | 121 |
return issue |
102 | 122 |
|
103 | 123 |
|
124 |
######### Main |
|
125 |
|
|
104 | 126 |
nids, urls = url_parser.give_json_urls(LIST_TODO, BASE_URL) |
105 | 127 |
|
106 | 128 |
h = httplib2.Http() |
Formats disponibles : Unified diff
Ajout de commentaires dans les scripts goto_redmine et urls_parser