ホームページ > バックエンド開発 > Python チュートリアル > タイムシートを自動化するための怠zyなエンジニアガイド:パート1

タイムシートを自動化するための怠zyなエンジニアガイド:パート1

Patricia Arquette
リリース: 2025-01-29 08:14:11
オリジナル
959 人が閲覧しました

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

タイムシート:すべてのソフトウェアエンジニアの存在の悩み。 午前3時に複雑なバグを格闘して、勤務時間を細心の注意を払って文書化してはいけませんか? 残念ながら、フリーランスやフルタイムの雇用には、しばしばこの退屈な仕事が必要です。

今年、私は自分の限界に達しました。 忙しい年のプロジェクトの後、いくつかはキャンセルされ、一部は再設計され、他の人は無期限に延期されました - 私は迫り来る年末のタイムシートの締め切りに直面しました。私の一年間の仕事を手動で再現する見込みは困難でした。 私の解決策?それを自動化します。

これは、タイムシートの恐怖からコーディングの冒険への私の旅です。 合理化された効率的なアプローチの準備をしてください

問題:タイムシートは悪夢です

ステージを設定しましょう:

    チャレンジ:
  • 1年間、すべてのタスクに費やされた1時間ごとに記録します。
  • ハードル:
  • 私の記憶は、書かれていない単位テストよりも信頼性が低いです。 締め切り:
  • ある日。 Just
  • 1つの 手動入力は不可能でした。私の計画:Jira、Git、Slack、Outlookなどの毎日のツールからデータを抽出し、包括的なタイムシートに結合します。
  • ツール

私の武器:


JIRA:

タスクとチケットの追跡。

  1. git:履歴をコミットします(すべての優れたエンジニアがチケットにコミットするためですよね?)
  2. SLACK:
  3. チームコミュニケーション(会議とメッセージが含まれています)。
  4. OUTLOUK:
  5. カレンダーイベント(はい、ミーティングが機能しているためです)
  6. ステップ1:JIRAチケットの抽出 最初に、私はジラに取り組みました。特定の時間枠内ですべてのチケットが割り当てられていました。 Jiraの堅牢なAPIと少しのPythonマジックにより、これが達成可能になりました。
  7. スクリプト

このPythonスクリプトは、Jiraチケットを取得します:

機能

認証:

jira電子メールとAPIトークンを使用して認証します。
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) ...
ログイン後にコピー
ログイン後にコピー

jqlクエリ:

JQLクエリを構築して、日付範囲内で割り当てられたチケットをフェッチします。
  1. データのエクスポート:分析のために結果の結果をCSVにエクスポートします。
  2. ステップ2:Git Commitsの取得
  3. 次に、gitを処理しました。 私たちのチームにはコミットメッセージにJIRAチケットIDが含まれているため、コミットデータを抽出してチケットにリンクするスクリプトを作成しました。

    スクリプト

    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) ...
    ログイン後にコピー
    ログイン後にコピー

    機能

    1. git log:を使用して、コミット履歴を取得します。git log
    2. JIRA ID抽出:正規表現を使用して、コミットメッセージからJIRAチケットIDを抽出します。
    3. csvエクスポート:
    4. 結果をCSVに保存します。
    ステップ3:スラックメッセージの処理

    Slackはより挑戦的であることが証明されました。メッセージはコンテキストが豊富で、直接タスクマッピングが困難になります。 私は(コストと複雑さのために)AIをバイパスし、コミュニケーション時間のために一般的なチケットを作成し、スラックメッセージを取得するスクリプトを書きました。

    スクリプト

    機能

    import subprocess
    import csv
    import re
    
    def get_git_commits(since_date=None, author=None):
        # ... (rest of the script remains the same) ...
    ログイン後にコピー

    会話リスト:
      ボットにアクセスできるすべてのチャネルとDMを取得します。
    1. メッセージの取得:指定された日付範囲内でメッセージを取得します。
    2. csvエクスポート:メッセージをCSVに保存します。
    3. ステップ4:Outlook Meetingsのキャプチャ
    最後に、私は会議を取り入れました。
    Pythonライブラリを使用して、カレンダーイベントを抽出してCSVにエクスポートするスクリプトを作成しました。

    スクリプト

    exchangelib機能

    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) ...
    ログイン後にコピー
    認証:

    認証のためにOutlookのメールとパスワードを使用します。

    1. カレンダークエリ:指定された日付範囲内でカレンダーイベントをフェッチします。
    2. csvエクスポート:
    3. イベントをCSVに保存します。
    4. 次は何ですか? 今、4つのCSVファイルがありました:

    JIRAチケット:

    すべてのタスクが機能しました

    git commits:
      すべてのコードが記述されています。
    1. Slackメッセージ:すべての通信。
    2. Outlook Meetings:すべての会議が出席しました。
    3. パート2では、これらのデータセットを組み合わせて完全なタイムシートを作成する方法を示します。 ヒント:Python、データ操作、魔法のタッチ。
    4. お楽しみに! 覚えておいてください:効率が重要です。
    5. ソフトウェアエンジニアとして最も好きではないタスクは何ですか?もう自動化しましたか?コメントであなたの経験を共有してください!

    以上がタイムシートを自動化するための怠zyなエンジニアガイド:パート1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート