2015-07-15

subversionの変更記録とredmineのチケット情報を連携させてレポートしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
以下のサイトでsubversionのリポジトリのコード変更量を集計する方法を紹介しています。
http://iyukki.blog56.fc2.com/blog-entry-179.html

これを見てこの情報とredmineのチケット情報を組み合わせることができないかなぁと思ってみたので作ってみました。
以下に置いておきました。
https://github.com/vivahiraj/svn_rm_rep

subversionのコミットログに関連するredmineのチケット番号を
#1111
のように記録していることを前提とはしています。

まずは、リポジトリの変更量を
http://iyukki.blog56.fc2.com/blog-entry-179.html
と同じような仕組みで取得します。

そしてコミットログからredmineのチケット番号を取得して、集計をしておいて
最後にredmineのapiを利用してそのチケット情報を取得します。

使い方としては、以下のような感じになります。
ruby svn_rm_rep.rb -r "{2015-06-01}:{2015-08-01}" -c config.yaml

config.yamlには
subversionリポジトリのURL
redmineのURL
redmineのAPIキー
を記載する必要があります。

ちなみにredmineのAPIキーの取得方法は以下が参考になります。
http://www.r-labs.org/projects/r-labs/wiki/Redmine_REST_API

ツールを実行した結果は以下のようになります。
-----------------------------------------------------------------------------------
 rev| author   | date     | add| del| ticket 
 ---+----------+----------+----+----+-----------
 872|  jagajaga|2015-05-28|   7|   3|1826
 873|  jagajaga|2015-06-11| 124|  54|1922
 874|    imoimo|2015-06-15|   1|   4|
 875|  jagajaga|2015-06-24|  63|   0|1949
 876|  jagajaga|2015-06-24|   7|   7|1950
 877|    imoimo|2015-06-24|   1|   1|1958
 878|  jagajaga|2015-06-24|  19|   7|1949
 879|    imoimo|2015-06-24|   4|   4|
 880|  jagajaga|2015-07-03|  54| 124|1976
 881|    imoimo|2015-07-07|  30|  30|
 882|    imoimo|2015-07-07|   1|   0|
 883|    imoimo|2015-07-08|   2|   1|
 884|    imoimo|2015-07-09|   1|   1|
 885|  jagajaga|2015-07-09|  53|  28|1986
 886|  jagajaga|2015-07-09|  23|   0|1986


 month      | commits | add    | del    | delta  
 -----------+---------+--------+--------+--------
 2015-07    |       7 |   +164 |   -184 |    -20
 2015-06    |       7 |   +219 |    -77 |   +142
 2015-05    |       1 |     +7 |     -3 |     +4


 author     | commits | add    | del    | delta  
 -----------+---------+--------+--------+--------
 imoimo     |       7 |    +40 |    -41 |     -1
 jagajaga   |       8 |   +350 |   -223 |   +127


 ticket | commits | add    | del    | delta  | start      | end        | diff   
 -------+---------+--------+--------+--------+------------+------------+--------
 1986   |       2 |    +76 |    -28 |    +48 | 2015-07-09 | 2015-07-15 |     +5 
 1976   |       1 |    +54 |   -124 |    -70 | 2015-07-03 | 2015-07-03 |     +0 
 1958   |       1 |     +1 |     -1 |     +0 | 2015-06-24 | 2015-06-24 |     +0 
 1950   |       1 |     +7 |     -7 |     +0 | 2015-06-22 | 2015-06-24 |     +1 
 1949   |       2 |    +82 |     -7 |    +75 | 2015-06-22 | 2015-06-24 |     +2 
 1922   |       1 |   +124 |    -54 |    +70 | 2015-06-09 | 2015-06-11 |     +2 
 1826   |       1 |     +7 |     -3 |     +4 | 2015-05-28 | 2015-05-28 |     +0 

-----------------------------------------------------------------------------------

上3つのレポートは
http://iyukki.blog56.fc2.com/blog-entry-179.html
で紹介されたのと同じです。

最後の一つがredmineの情報を組み合わせています。
ticket欄がredmineのチケット番号になっており、startがチケットを起票した日(created_on)でendがチケットをクローズした日(closed_on)になっており、diffがstartからendまでの経過日数になっています。

2015-07-09

apacheで認証は、ActiveDirectoryにしてもらって、認可はローカルファイルを利用する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
apacheでAcitveDirectoryで認証させるには、
sshとapacheの認証でActiveDirectoryと連携する
をご覧ください。

上記は、認証できたら使えますというものでしたが、認証はActiveDirectoryにまかせるけど、実際に利用できるかどうかはローカルのファイルを利用する場合です。

以下のような感じに設定を書きます。
ポイントは、AuthGroupFileとrequire groupです。

<location /test_krb_auth>
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbAuthRealms MY_DOMAIN
  KrbVerifyKDC Off
  KrbMethodNegotiate Off

  AuthGroupFile /var/www/authgroup
  require group admin
</location>

グループファイルの方は以下のような感じです。
@以下は、認証後にセットされるユーザ名にあわせます。設定方法によっては@以下がなしの場合もあるはずです。

admin: jaga@MY_DOMAIN imo@MY_DOMAIN

これでAcitveDirectoryでjagaさんとsatoさんが認証できたとしても、認可されるのはjagaさんだけになります。