Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Redmine::ChanでIRCからプロジェクト管理
Search
Yasuhiro Onishi
September 28, 2012
Technology
5
5.3k
Redmine::ChanでIRCからプロジェクト管理
毎日のIssue管理をIRCから簡単に行いましょう
Yasuhiro Onishi
September 28, 2012
Tweet
Share
More Decks by Yasuhiro Onishi
See All by Yasuhiro Onishi
アニメから得た学びを発表会 in 関西 はてな スポンサーLT
onishi
1
14
大吉祥寺.pm 基調講演
onishi
3
6.9k
YAPC::Kyoto 2023 Keynote
onishi
3
9.9k
2016 Devsumi Kansai
onishi
3
1.4k
Hatena-Camp
onishi
2
4.3k
Hatena Blog for Engineer
onishi
2
3k
Hatena Blog Development Flow
onishi
34
38k
hatena-diary-blog-xss
onishi
5
1.1k
wget.pl
onishi
3
1.4k
Other Decks in Technology
See All in Technology
Kubernetesを知る
logica0419
12
990
ヤプリのデータカタログ整備 1年間の歩み / Progress of Building a Data Catalog at Yappli
yamamotoyuta
3
550
Engineer Recruting Deck
siva_official
PRO
1
3.1k
最強DB講義 #35 大規模言語モデルに基づく検索モデル
mpkato
1
110
PFN Company Deck
pfn
PRO
2
130
セキュリティベンダー/ユーザー双方の視点で語る、 Attack Surface Managementの実践 - Finatextパート / cloudnative-architecture-of-asm
stajima
0
2.3k
JAWS UG 青森(弘前)クラウド・AWS入門
hiragahh
0
170
AWS認定試験の長文問題を早く解くコツ
keke1234ke
0
110
Yahoo! JAPANトップページにおけるマイクロフロントエンド - 大規模組織におけるFE開発を加速させるには
lycorptech_jp
PRO
0
1.6k
GeminiとUnityで実現するインタラクティブアート
hokkey621
0
160
ONNX推論クレートの比較と実装奮闘記
emergent
0
220
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
510
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
33
1.5k
Testing 201, or: Great Expectations
jmmastey
39
7.1k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Optimizing for Happiness
mojombo
376
70k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
What's new in Ruby 2.0
geeforr
343
31k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Gamification - CAS2011
davidbonilla
80
5k
Building an army of robots
kneath
302
43k
Code Reviewing Like a Champion
maltzj
520
39k
GitHub's CSS Performance
jonrohan
1030
460k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Transcript
2012/09/28 YAPC ASIA TOKYO גࣜձࣾͯͳ େ߁༟JEPOJTIJ 3FENJOF$IBOͰ *3$͔ΒϓϩδΣΫτཧ
ɹJEPOJTIJେ߁༟ ɹ0/*4)* ɹ!ZBTVIJSP@POJTIJ ɹגࣜձࣾͯͳ ɹͯͳϒϩά
%FWFM,5:1SPG 5FYU)BUFOB 8FC&NCFE
ͯͳϒϩά
ϒϩάͷΞΠίϯΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠ಡΜͩϒϩάͷʮl͜͜z͕͍͍ͳʯ Λॻ͖खʹ͑Α͏ʂɹҾ༻ελʔΛ͚ͭ͘͢͠·ͨ͠εϚʔτϑΥϯ༻ͷϒϩάฤूը໘Ͱࣸਅ ΛߘͰ͖ΔΑ͏ʹ͠·ͨ͠.BSLEPXOه๏ʹରԠ͠·ͨ͠τοϓϖʔδ ʮͷΤϯτϦʔʯͳͲΛϦχϡʔΞϧ͠·ͨͯ͠ͳελʔΛ͚ͭ͘͢ɺݟ͘͢ͳΔΑ͏ʹ มߋ͠·ͨ͠ฤूαΠυόʔʹʮ͏͝ϝϞషΓ͚ػೳʯΛՃ͠·ͨ͠αΠυ όʔʹʮ࠷ۙͷίϝϯτʯϞδϡʔϧΛՃ͠·ͨ͠ωοτͷ͔ΒϒϩάΛॻ͍ͯΈ·ͤΜ͔ʁ ฤूαΠυόʔʹʮͯͳϒοΫϚʔΫషΓ͚ػೳʯΛ·ͨ͠എܠը૾ͷ܁Γฦ͠ͷઃఆͳ ͲɺσβΠϯɾΧελϚΠζػೳΛڧԽ͠·ͨ͠ϒϩάͷഎܠը૾ΛΞοϓϩʔυͰ͖ΔΑ͏ʹ͠· ͨ͠ϒϩάʹԿΛॻ͔͘ɺࣗͷπΠʔτ͔Β୳ͯ͠Έ·ͤΜ͔ʁฤूαΠυόʔʹ5XJUUFSషΓ ͚ػೳΛՃ͠·ͨ͠هࣄԼ෦ΛΧελϚΠζͰ͖ΔΑ͏ʹ͠·ͨ͠ػೳม
ߋΞΫηεղੳػೳΛڧԽ͠·ͨ͠ϒϩάͷλΠτϧ෦ʹը૾ΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠ "NB[POհػೳΛՃ͠·ͨ͠ϒϩάͷϔομͱϑολΛΧελϚΠζͰ͖ ΔΑ͏ʹ͠·ͨ͠ػೳมߋͯͳϒϩά1SPͰಠࣗυϝΠϯΛઃఆͨ͠ࡍʹɺͯͳϒοΫϚʔΫ ͱͯͳελʔҠߦ͢ΔͳͲͷػೳΛՃ͠·ͨ͠ػೳมߋαΠυόʔʮϓϩϑΟʔϧʯϞδϡ ʔϧʹࣗ༝هड़ཝΛઃ͚ΔͳͲػೳΛՃ͠·ͨͯ͠ͳμΠΞϦʔ͔ΒͯͳϒϩάͷΠϯϙʔ τػೳΛՃ͠·ͨ͠هࣄ63-ΛΑΓॊೈʹઃఆͰ͖ΔػೳͳͲΛՃ͠·ͨ͠ ػೳมߋαΠυόʔͷʮϓϩϑΟʔϧʯϞδϡʔϧʹɺ֤छιʔγϟϧϝσΟΞͷϑΥϩʔϘλϯදࣔػೳΛՃ͠· ͨ͠ػೳมߋεϚʔτϑΥϯߘɾฤूػೳΛՃ͠ɺཧը໘ΛϦχϡʔΞϧ͠·ͨ͠ ίϝϯτঝೝػೳͳͲɺίϝϯτػೳΛڧԽ͠·ͨ͠ͱͩͪݶఆͳͲɺϒϩάͷ ެ։ൣғΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠(PPHMF"OBMZUJDTରԠͳͲɺαΠτཧػೳΛՃ͠·͠ ͨϝʔϧͰهࣄ͕ߘͰ͖ΔػೳΛՃ͠·ͨ͠αΠυόʔϞδϡʔϧʮϦϯ Ϋʯʮ࠷৽هࣄʯͷػೳΛڧԽ͠·ͨ͠৽͍͠αΠυόʔϞδϡʔϧΛՃ͠ɺαΠυόʔฤूػೳ ΛڧԽ͠·ͨ͠֎෦αΠτຒΊࠐΈػೳΛڧԽ͠ɺ5XJUUFSͷπΠʔτͳͲΛ؆୯ʹషΕΔΑ͏ʹ͠ ·ͨ͠(PPHMF֤αʔϏεͷࣸਅಈըͳͲ͕؆୯ʹհͰ͖ΔػೳΛՃ͠·ͨ͠ هࣄͷߘ࣌ΛมߋͰ͖ΔΑ͏ʹ͠·ͨ͠Ωϟϯϖʔϯͯͳϒϩάͷ༗ྉϓϥ ϯʮͯͳϒϩά1SPʯΛϦϦʔεɺକ5γϟπͷϓϨθϯτΩϟϯϖʔϯΛ։࠵ʮهࣄΧςΰϦ ि࿈ଓ ৽ػೳ ϦϦʔε
3FENJOF wϓϩδΣΫτཧιϑτΣΞ w3VCZPO3BJMT wػೳ͕๛ wૢ࡞͕ࡶʢݸਓͷݟղͰ͢ʣ
3FENJOF8FC
wࠓ୭͕ԿΛ͍ͬͯΔ͔ՄࢹԽ w࿙ΕΛͳ͘͢ wཧ͕໘ͰݏʹͳΒͳ͍ 1SPKFDU.BOBHFNFOU
wͱʹ͔͘؆୯ʹJTTVFొ wৗ͍ͬͯΔπʔϧ͔Β wϒϥβͰ3FENJOF։͔ͳ͍ wଉΛ͢ΔΑ͏ʹJTTVFొ 1SPKFDU.BOBHFNFOU
*3$ w*OUFSOFU3FMBZ$IBU wTJODF 3'$ wރΕٕͨज़Ͱ͕ࣾ५͏ wࣾ*3$ΤϯδχΞͷৗ
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ͍͍ͨʂRedmineʹొ͠·͢ʂ onishi: Redmineʹొ͠ͱ͍ͨΑʂ hitode909: Γ·͢ɹ hitode909: Γ·ͨ͠ɻϨϏϡʔ͓ئ͍͠·͢
onishi: ʂϨϏϡʔ͠·ͨ͠ɻͳ͍Α hitode909: ͋Γ͕ͱ͏͍͟͝·͢ɻϦϦʔε͠·ͨ͠ UBMLPO*3$
3FDJQF w*3$αʔόʔ w3FENJOFαʔόʔ wઐ༻3FENJOFϢʔβʔ ཧݖݶ w3&45"1*Λ༗ޮʹ͢Δ ཧઃఆೝূ
None
3FENJOF$IBO use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host',
irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;
*3$$POpH use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host',
irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;
3FMBUJPOTIJQ use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host',
irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;
3FENJOF$POpH use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host',
irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;
3VO use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host',
irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook; # run ͰՄ
.PEVMFT "OZ&WFOU*3$$MJFOU 8FC4FSWJDF4JNQMF
ҙ͜ͷޙɺ 1FSMͷίʔυ ग़ͯདྷ·ͤΜ )08 50 64&
$SFBUF*TTVF onishi: minechan: YAPCࢿྉ࡞Δ minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [৽ن]
4IPX*TTVF onishi: #123 minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [৽ن]
"TTJHO onishi: #123 > motemen minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [motemen]
[৽ن]
/PUF onishi: IE6ޙͰ֬ೝ͢Δ > #123 minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [motemen]
[৽ن]
*TTVF$POEJUJPO "TTJHO MPHJOOBNF 4UBUVT TUBUVTOBNF 5SBDLFS USBDLFSOBNF %VF%BUF aE\^<>aE\ ^<>aE\
^
$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 :
[όά] [onishi] [ਐߦத] [2012-09-28]
$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 :
[όά] [onishi] [ਐߦத] [2012-09-28] 5SBDLFS
$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 :
[όά] [onishi] [ਐߦத] [2012-09-28] 4UBUVT
$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 :
[όά] [onishi] [ਐߦத] [2012-09-28] %VF%BUF
"VUP$POpH wVTFSTKTPO wJTTVF@TUBUVTFTKTPO wUSBDLFSTKTPO
3FMPBE$POpH onishi: reload minechan: reloaded.
ৗͷϓϩδΣΫτཧ
৽ن ਐߦத ϨϏϡʔґཔ ϨϏϡʔத ϦϦʔεͪ
ऴྃ ϨϏϡΞʔ ୲ऀ
3FENJOF$IBO ."/*"$4
HJUEJGGNBTUFSCSBODI $VTUPN'JFMET
$VTUPN'JFMET onishi: #123 origin/mybranch minechan: https://your.redmine .host/issues/123 : [mybranch] custom_field_prefix
=> { 2 => [qw(origin/)], # branch },
4.& hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ͦΕΊͬͪΌ͑͑Μ onishi: minechan: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ minechan: https://redmine/issues/123
: [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏]
4.& hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ͦΕΊͬͪΌ͑͑Μ onishi: minechan: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ minechan: https://redmine/issues/123
: [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏] ίϐϖ
hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ..ɹ minechan: https://redmine/issues/123 : [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏]
.:"1*,&: onishi: aaa minechan: set key onishi : aaa QSJWNTHUPNJOFDIBO
$VTUPNJ[F status_commands => { 1 => [‘Ί·͢’], 2 => [‘Γ·͢’],
3 => [‘ϨϏϡʔ͓Ͷ͕͍͠·͢’], 4 => [‘ϨϏϡʔ͠·͢’], 5 => [‘ϨϏϡʔ͠·ͨ͠’], 6 => [‘ϦϦʔε͠·ͨ͠’], }, ৽ن ਐߦத ϨϏϡʔґཔ ϨϏϡʔத ϦϦʔεͪ ऴྃ
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ .BOBHFMJLFUBMLJOH
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲ*TTVFొʳ .BOBHFMJLFUBMLJOH
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲਐߦதʳ .BOBHFMJLFUBMLJOH
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲϨϏϡʔͪʳ .BOBHFMJLFUBMLJOH
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲϦϦʔεͪʳ .BOBHFMJLFUBMLJOH
hitode909: ϒϩάͰmarkdown͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 Γ·͢ɹ hitode909:
#123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲऴྃʳ .BOBHFMJLFUBMLJOH
·ͱΊ
OJDL*446& $SFBUF JE 4IPX JEBTTJOUSBDLFSTUBUVT EBUF 6QEBUF OPUFJE /PUF SFMPBE
3FMPBE 4.&
3FENJOF$IBOͰ w*TTVFʹؔ͢Δجຊૢ࡞Λ*3$্Ͱ wৗͷϓϩδΣΫτཧΛ؆୯ʹ wཧʹΘ͞Εͣɺຊ࣭తͳࣄΛ HJUIVCDPNPOJTIJ3FENJOF$IBO
ؓ ࠷ۙͷͯͳ
None
()&$IBO ͝ظԼ͍͞
ਓࡐืू wͯͳͰશ৬छΛืू͍ͯ͠·͢ʂ w౦ژΦϑΟεͰΤϯδχΞ࠾༻ʂ wҰॹʹϒϩάΛ࡞Γ·͠ΐ͏ʂ www.hatena.ne.jp/company/staff
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠