Projet

Général

Profil

Révision 65c89524

Ajouté par Julien Enselme il y a plus de 10 ans

Goto redmine

Les constantes (url, nom des membres,…) sont dans un fichier séparé :
constantes.py

Le script peut supprimer les issues redmine via le script purge_issues_redmine.py. Il a effacé avec succès les
tâches sur mon installation locale.

Voir les différences:

scripts_divers/migrer_taches_vers_redmine/constantes.py
1
#Dictionnaire des gens dont on a la clé API
2
#id: clé
3
SUBMITERS = {'jenselme': '', 'admin': 'a7630a1244be353424cc0f56a49657c3fa9dbcc6'}
4
MANAGER_TEST = 'admin'
5
MANAGER = 'jenselme'
6

  
7
#les entêtes des requêtes http
8
Headers = {'content-type': 'application/json', 'X-Redmine-API-Key': ''}
9
Headers_GET = {'X-Redmine-API-Key': ''}
10

  
11
#là où on poste les tâches
12
URL_POST_ISSUES = 'https://forge.centrale-marseille.fr/issues'
13
#La liste des tâches
14
URL_ISSUES_JSON_TEST = 'http://localhost/redmine/projects/test/issues.json'
15
URL_ISSUES_JSON = 'https://forge.centrale-marseille.fr/projects/clubdrupal/issues.json'
16
#l’url du projet
17
URL_PROJECT_TEST = 'http://localhost/redmine/projects/test'
18
URL_PROJECT = 'https://forge.centrale-marseille.fr/projects/clubdrupal'
19
URL_REDMINE_TEST = 'http://localhost/redmine'
20
URL_REDMINE = 'http://forge.centrale-marseille.fr'
21

  
22
#là où sont les tâches
23
LIST_TODO = 'http://localhost/portail/liste-tache'
24

  
25
#url de base de l’emplacement du contenu
26
BASE_URL = 'http://localhost/portail'
27
PROJECT_ID = 30
28
TRACKER_ID = 2
29

  
30

  
31
########## dictionnaires de correspondance
32
DONE_RATIO = {'En pause': 50, 'À commencer': 0, 'Entamée': 20, 'Bien avancée': 80, 'Terminée (success)': 100, 'Fermée (won\'t fix)': 100}
33
PRIORITY = {'5 - Très basse': 3, '4 - Basse': 3, '3 - Moyenne': 4, '2 - Haute': 5,\
34
            '1 - Très haute': 6, 'Très basse': 3, 'Basse': 3, 'Moyenne': 4,\
35
            'Haute': 5, 'Très haute':6, '0': 3, '1': 3, '2': 4, '3': 5, '4': 6}
36
STATUS = {'En cours': 2, 'Fermée': 5, 'Rejetée': 6, 'En pause': 7}
37
#NB sur le portail, on a les équivalences suivantes
38
#pour le champ version de drupal : 17 : drupal6, 18 : drupal7
39
DRUPAL_VERSION = {'17': 2, '18': 1}
scripts_divers/migrer_taches_vers_redmine/purge_issues_redmine.py
1
#!/usr/env python3
2

  
3
'''Ce script supprime TOUTES les tâches redmines du projet indiqué. À utiliser avec prudence.
4
'''
5

  
6
import requests #pour faire des requêtes http
7
import json
8
import sys
9

  
10
import constantes as const
11

  
12
print('Ce script supprime TOUTES les tâches redmines du projet indiqué. À utiliser avec prudence.')
13
ok = input('Continuer ? (oui/non) : ')
14

  
15
if ok == 'oui':
16
    const.Headers_GET['X-Redmine-API-Key'] = const.SUBMITERS[const.MANAGER]
17
    r = requests.get(const.URL_ISSUES_JSON + '?status_id=*&limit=100', headers=const.Headers_GET)
18

  
19
    taches_json = json.loads(r.text)['issues']
20

  
21
    sys.stdout.write('Pourcentage de complétion : 00%\b\b\b')
22
    sys.stdout.flush()
23
    compt = 0
24
    for tache in taches_json:
25
        tid = tache['id']
26
        r = requests.delete(const.URL_REDMINE + '/issues/{}.json'.format(tid), headers=const.Headers_GET)
27

  
28
        #on affiche le pourcentage de complétion
29
        compt += 1
30
        pourcentage = compt/len(taches_json)*100
31
        sys.stdout.write(str(pourcentage) + '%\b\b\b')
32
        sys.stdout.flush()
33
else:
34
    print('Sage décision')

Formats disponibles : Unified diff