Maison > développement back-end > Tutoriel Python > Le Guide de l'ingénieur paresseux pour automatiser les feuilles de temps: partie 1

Le Guide de l'ingénieur paresseux pour automatiser les feuilles de temps: partie 1

Patricia Arquette
Libérer: 2025-01-29 08:14:11
original
892 Les gens l'ont consulté

The Lazy Engineer’s Guide to Automating Timesheets: Part 1

feuilles de temps: le fléau de l'existence de chaque ingénieur logiciel. Ne préféreriez-vous pas lutter contre un bug complexe à 3 heures du matin que de documenter méticuleusement votre journée de travail? Malheureusement, le travail indépendant ou à temps plein nécessite souvent cette tâche fastidieuse.

Cette année, j'ai atteint ma limite. Après une année mouvementée de projets - certains annulés, certains repensés, d'autres indéfiniment reportés - j'ai fait face à une date limite de feuille de fin d'année. La perspective de recréer manuellement mon travail de toute l'année était intimidante. Ma solution? L'automatiser.

Ceci est mon voyage de la peur de la feuille de temps à une aventure de codage. Préparez-vous pour une approche rationalisée et efficace.


Le problème: les feuilles de temps sont un cauchemar

Préparez le terrain:

  • Le défi: Enregistrez chaque heure passée sur chaque tâche pour toute l'année.
  • l'obstacle: Ma mémoire est moins fiable qu'un test unitaire mal écrit.
  • La date limite: un jour. Juste un .

L'entrée manuelle était impossible. Mon plan: Extraire les données de mes outils quotidiens - Jira, Git, Slack et Outlook - et les combiner dans une feuille de temps complète.


les outils

mon arsenal:

  1. Jira: Suivi des tâches et des billets.
  2. git: Committer l'historique (parce que chaque bon ingénieur se lie aux billets, non?).
  3. Slack: Communication d'équipe (réunions et messages inclus).
  4. Outlook: événements de calendrier (parce que, oui, les réunions sont du travail).

Étape 1: Extraction des billets Jira

Tout d'abord, j'ai abordé Jira. J'avais besoin de tous les billets qui m'ont été attribués dans un délai spécifique. L'API robuste de Jira et un peu de magie Python ont rendu cela réalisable.

le script

Ce script Python récupère les billets Jira:

<code class="language-python">import os
from jira import JIRA
import pandas as pd
from datetime import datetime
import logging
import sys
from typing import List, Dict, Any
import argparse

# ... (rest of the script remains the same) ...</code>
Copier après la connexion
Copier après la connexion

Fonctionnalité

  1. Authentification: utilise votre jet de messagerie et de jeton API JIRA pour l'authentification.
  2. JQL Query: Construit une requête JQL pour récupérer les billets qui vous sont attribués dans une plage de dates.
  3. Exportation de données: Exporte les résultats vers un CSV pour l'analyse.

Étape 2: la récupération de Git commet

Ensuite, j'ai traité Git. Étant donné que notre équipe comprend des identifiants de billets JIRA dans les messages de validation, j'ai créé un script pour extraire les données de validation et les lier aux billets.

le script

<code class="language-python">import os
from jira import JIRA
import pandas as pd
from datetime import datetime
import logging
import sys
from typing import List, Dict, Any
import argparse

# ... (rest of the script remains the same) ...</code>
Copier après la connexion
Copier après la connexion

Fonctionnalité

  1. Git Log: utilise git log pour récupérer l'historique des engagements.
  2. Extraction d'ID Jira: utilise des expressions régulières pour extraire les identifiants de billets Jira à partir de messages de validation.
  3. Exportation CSV: enregistre les résultats à un CSV.

Étape 3: Gestion des messages Slack

Slack s'est avéré plus difficile. Les messages sont riches en contexte, ce qui rend difficile la cartographie directe des tâches. J'ai contourné l'IA (en raison du coût et de la complexité) et j'ai créé un billet générique pour le temps de communication, puis j'ai écrit un script pour récupérer les messages Slack.

le script

<code class="language-python">import subprocess
import csv
import re

def get_git_commits(since_date=None, author=None):
    # ... (rest of the script remains the same) ...</code>
Copier après la connexion

Fonctionnalité

  1. Liste des conversations: récupère tous les canaux et DMS accessibles au bot.
  2. Retrievale de messages: Récupère les messages dans une plage de dates spécifiée.
  3. Exportation CSV: Enregistre les messages dans un CSV.

Étape 4: Capturer les réunions d'Outlook

Enfin, j'ai incorporé des réunions. En utilisant la bibliothèque exchangelib Python, j'ai créé un script pour extraire les événements de calendrier et les exporter vers un CSV.

le script

<code class="language-python">import os
from datetime import datetime
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
import pandas as pd

# ... (rest of the script remains the same) ...</code>
Copier après la connexion

Fonctionnalité

  1. Authentification: utilise votre e-mail et votre mot de passe Outlook pour l'authentification.
  2. Requête du calendrier: Retrait les événements de calendrier dans une plage de dates spécifiée.
  3. Exportation CSV: enregistre les événements dans un CSV.

Quelle est la prochaine étape?

Maintenant, j'avais quatre fichiers CSV:

  1. Billets Jira: Toutes les tâches ont fonctionné.
  2. git commet: tout le code écrit.
  3. Messages Slack: Toute communication.
  4. Réunions Outlook: Toutes les réunions ont assisté.

Dans Partie 2 , je vais montrer comment j'ai combiné ces ensembles de données pour créer une feuille de temps complète. Astuce: plus de python, de manipulation de données et une touche de magie.

Restez à l'écoute! N'oubliez pas: l'efficacité est essentielle.


Quelle est votre tâche la moins préférée en tant qu'ingénieur logiciel? L'avez-vous déjà automatisé? Partagez vos expériences dans les commentaires!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal