レポートを実行するための


パーソナルナレッジマネジメントシステム


Using a File as a Template in Emacsでは、私の監督が書いてくれた週のレポートの終わりについて書きました.私は、私がそのレポートを記入するのを助けるために、私が使用するスクリプトの1つで少し拡大したいです.

脚本


以下のスクリプトは、私が週レポートの終わりを書くのを手伝うために使う道具の一つです.それはForem code baseを考慮するだけです.
cd ~/git/forem ;
echo "Authored PRs Merged Since 2022-03-25\n"
git log --since=2022-03-25 \
  --format="%h — %s %an, (%cs) %d" \
  --author="(Suzanne A|Jeremy F|Arit A|Dwight S|Anna B)"\
  | rg "— ([^\(]+) \(\#(\d+)\) ([^,]+)," --only-matching -r '- $1 :: forem/forem#$2 $1' \
  | sort
echo "\nCo-authored PRs Merged Since 2022-03-25\n"
git log --since=2022-03-25 \
  --grep="Co-authored-by: (Suzanne A|Jeremy F|Arit A|Dwight S|Anna B)" \
  --format="%(trailers:key=Co-authored-by,separator=%x2C,valueonly=true) :: %s" \
  | rg "^([^<]+) <.*> :: ([^\(]+) \(\#(\d+)\)" --only-matching -r '- $1 :: forem/forem#$3 $2' \
  | sort
上記のスクリプトでは2つのセクションがあります.
  • 第1節は、コンテンツ経験ポッドのメンバーによって作成されたコミットです.
  • 第2のセクションは、PODメンバーが1つ以上貢献するコミットがPRにコミットするが、始めの著者でなかったコミットですGitはこれらを共同執筆者として登録します.
  • 言い換えると、スクリプトは私のチームが週のためにどんなコードを助けたかを示します.

    どこでスクリプトをファイルするか?


    一週間か二週間、私は上記のスクリプトの簡単なバージョンを実行していた私は私のシェルコマンド履歴を検索し、右見たものを見つけ、日付を調整します.
    それは働いたが、私はそのワークフローに依存しないことを好む.私は、スクリプトを私のContent - Experience Podのorg Roam Nodeに加えました;私のPKMシステムの一部であるドキュメント.
    以下にそのドキュメントの内容を示します:
    #+Begin_src sh :results output :cmdline (org-read-date)
      cd ~/git/forem ;
      echo "Authored PRs Merged Since $1\n"
      git log --since=$1 \
        --format="%h — %s %an, (%cs) %d" \
        --author="(Suzanne A|Jeremy F|Arit A|Dwight S|Anna B)"\
        | rg "— ([^\(]+) \(\#(\d+)\) ([^,]+)," --only-matching -r '- $3 :: forem/forem#$2 $1' \
        | sort
      echo "\nCo-authored PRs Merged Since $1\n"
      git log --since=$1 \
        --grep="Co-authored-by: (Suzanne A|Jeremy F|Arit A|Dwight S|Anna B)" \
        --format="%(trailers:key=Co-authored-by,separator=%x2C,valueonly=true) :: %s" \
        | rg "^([^<]+) <.*> :: ([^\(]+) \(\#(\d+)\)" --only-matching -r '- $1 :: forem/forem#$3 $2' \
        | sort
    #+end_src
    
    
    私がorgモードのBabel構文を使用してそれを書いたので、それは少し異なります.
    最初の行(例えば#+Begin_src sh :results output :cmdline (org-read-date) )が宣言されます.
  • コードブロックsh構文
  • outputとして結果を書くために
    スクリプトに(org-read-date)として$1の結果を通過する

  • 残りの行は、私が以前書いたもののほぼ同じです2022 - 03 - 25の「ハードコードされた」日付の代わりに、私はorg-read-date機能の結果を使用しています.
    レポートを実行するには、そのコードブロックのポイント(たとえばカーソル)を設定し、C-c C-cを入力し、EmacsがBabelブロックを評価します.
    まず、org-read-date関数を呼び出し、日付を選択するよう促します.シェルコマンドを実行します.の結果を出力します.
    そこから、私のチームが今週した仕事の一面を見ることができます.

    結論


    Emacsとorgモードを採用する前に、私はこれをどこに置くべきか迷っていました.それは私のシェルの歴史に残っているでしょう.
    しかし、今、私は人々のグループでこれを連想させたので、以下の一時的なファイルでそれを書いて、それについて書きました、私はより多くのそれの存在とそれが何をしたかについて覚えていそうです.
    私は、Gitのコミットトレーラーとコミットの共同著者を見つける方法について学びました.それは、人々が他の人が彼らの引き要求を合併させるのを助けるために、人々がする仕事を見えるようにするのを助けます.
    私もBabelから引数を渡すスクリプトを実行するスクリプトについてもう少し学びました.
    そして最後に、私は私のPKMシステムでこのブログの記事を書いたので、私は、公開されたブログ記事からコンテンツ体験ポッドに参考文献を持っています.
    言い換えれば、私は私が書いたスクリプトの詳細を見つけるためにパン粉くずを作成するために最善を尽くしています.