
タイムシート:すべてのソフトウェアエンジニアの存在の悩み。 午前3時に複雑なバグを格闘して、勤務時間を細心の注意を払って文書化してはいけませんか? 残念ながら、フリーランスやフルタイムの雇用には、しばしばこの退屈な仕事が必要です。
今年、私は自分の限界に達しました。 忙しい年のプロジェクトの後、いくつかはキャンセルされ、一部は再設計され、他の人は無期限に延期されました - 私は迫り来る年末のタイムシートの締め切りに直面しました。私の一年間の仕事を手動で再現する見込みは困難でした。 私の解決策?それを自動化します。
これは、タイムシートの恐怖からコーディングの冒険への私の旅です。 合理化された効率的なアプローチの準備をしてください
問題:タイムシートは悪夢です
ステージを設定しましょう:
チャレンジ:- 1年間、すべてのタスクに費やされた1時間ごとに記録します。
ハードル:- 私の記憶は、書かれていない単位テストよりも信頼性が低いです。
締め切り:
ある日。 Just - 1つの
手動入力は不可能でした。私の計画:Jira、Git、Slack、Outlookなどの毎日のツールからデータを抽出し、包括的なタイムシートに結合します。
ツール
私の武器:
JIRA:
タスクとチケットの追跡。
- git:履歴をコミットします(すべての優れたエンジニアがチケットにコミットするためですよね?)
SLACK:- チームコミュニケーション(会議とメッセージが含まれています)。
OUTLOUK:- カレンダーイベント(はい、ミーティングが機能しているためです)
- ステップ1:JIRAチケットの抽出
最初に、私はジラに取り組みました。特定の時間枠内ですべてのチケットが割り当てられていました。 Jiraの堅牢なAPIと少しのPythonマジックにより、これが達成可能になりました。
スクリプト
この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クエリを構築して、日付範囲内で割り当てられたチケットをフェッチします。
- データのエクスポート:分析のために結果の結果をCSVにエクスポートします。
-
ステップ2:Git Commitsの取得
次に、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) ...
ログイン後にコピー
ログイン後にコピー
機能
- git log:を使用して、コミット履歴を取得します。
git log
- JIRA ID抽出:正規表現を使用して、コミットメッセージからJIRAチケットIDを抽出します。
csvエクスポート:- 結果を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を取得します。
- メッセージの取得:指定された日付範囲内でメッセージを取得します。
- csvエクスポート:メッセージをCSVに保存します。
-
ステップ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のメールとパスワードを使用します。
- カレンダークエリ:指定された日付範囲内でカレンダーイベントをフェッチします。
csvエクスポート:- イベントをCSVに保存します。
- 次は何ですか?
今、4つのCSVファイルがありました:
JIRAチケット:
すべてのタスクが機能しました
git commits:すべてのコードが記述されています。-
Slackメッセージ:すべての通信。
-
Outlook Meetings:すべての会議が出席しました。
- パート2では、これらのデータセットを組み合わせて完全なタイムシートを作成する方法を示します。 ヒント:Python、データ操作、魔法のタッチ。
お楽しみに! 覚えておいてください:効率が重要です。-
ソフトウェアエンジニアとして最も好きではないタスクは何ですか?もう自動化しましたか?コメントであなたの経験を共有してください!
以上がタイムシートを自動化するための怠zyなエンジニアガイド:パート1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。