SlideShare a Scribd company logo
HUBOT
A LOOK INSIDE OUR ROBOT FRIEND
1.   Setting Up Hubot
2.   Coffeescript Primer
3.   Hubot Overview
4.   APIs
(disclaimer: this assumes OSX. commands should
       translate easily to windows and linux.)
PREREQUISITES
              Install Node
           be isalnd
            rw ntl oe
           Install and run Redis
add / s / o a / h r / p / i to your path
     urlclsaenmbn
         Install Hubot
    nmisal- cfe-cit
     p ntl g ofesrp
         nmisal- hbt
          p ntl g uo
      An Heroku account is suggested.
FIND A NICE HOME
          c to directory of choice
           d
run h b t - a r o to generate a boilerplate
     uo c ibt
                c aro
                 d ibt
           cmd+ bnhbt
            ho x i/uo
HELLO WORLD
      run b n h b t
           i/uo
type h b t p n and hit enter
      uo ig
A BRIEF DIVERSION INTO
     COFFEESCRIPT
itoesg =(sr -
nrMsae   ue) >
  i ue?nm?adue?hby
   f sr.ae n sr.ob?
    "el,Ia #rsos.ae,"+
     hlo  m {epnenm}
         " #rsos.ob}s.
          a {epnehbyit"
  es
   le
    msae="laetl m mr aotyusl.
     esg  Pes el e oe bu oref"

  msae
   esg

m =
 e
  nm:"ak
   ae Jc"
  hby "uo crto"
   ob: Hbt uain

cnoelgitoesg(e
osl.o nrMsaem)

#el,Ia Jc,aHbtcrtoit
hlo   m ak  uo uains
HUBOT STRUCTURE
P o f l (Heroku startup script)
 rcie
RAM.d
 EDEm
b n (contains hubot executable)
 i/
e t r a - c i t . s n(list of packages from npm)
 xenlsrpsjo
h b t s r p s j o (list of packages from hubot-
 uo-cit.sn
scripts)
p c a e j o (node package manager
 akg.sn
metainformation)
s r p s (custom hubot script directory)
 cit/
A HUBOT SCRIPT
    EXAMPLE
  CREATE AND EDIT
SRPSGOBECFE
CIT/ODY.OFE
gobe =[
 odys
  "y,{ae.,
   Be nm}"
  "ae,{ae.,
   Ltr nm}"
  "aecr,{ae.
   Tk ae nm}"
]

gobe=(ae -
ody   nm) >
 idx=pren(ahrno( *gobe.egh
  ne  asItMt.adm)  odyslnt)
 msae=gobe[ne]
  esg  odysidx
 msaerpae/nm},nm)
  esg.elc({ae/ ae;

mdl.xot =(oo)-
oueeprs     rbt >
 rbtha /beltr,(*/,(s)-
  oo.er (y|ae)?s.)i mg >
   i rbtnm.ooeCs( = mgmth2.ooeCs(
    f oo.aetLwrae) = s.ac[]tLwrae)
     beesg =gobemgmsaeue.ae
      yMsae  ody(s.esg.srnm)
     mgsn(yMsae
      s.edbeesg)
run b n h b tagain
     i/uo
say g o b e H b t
     ody uo
say l t r H b t
     ae, uo
HUBOT-SCRIPTS
       GITHUB.COM/GITHUB/HUBOT-SCRIPTS
hubot will automatically download and keep up-to-date
               any hubot-scripts you add
copy the dependencies from the hubot-script into your
                  pcaejo
                   akg.sn
                from clark.coffee :
 #Dsrpin
   ecito:
 # Nn
    oe
 #
 #Dpnece:
   eednis
 # "lr" ".."
    cak: 005
 #
 #Cniuain
   ofgrto:
 # Nn
    oe
 #
 #Cmad:
   omns
 # hbtcak<aa -bidsakie oto dt
    uo lr dt> ul prlns u f aa
 #
 #Ato:
   uhr
 # aakiid
    jcsfe
edit h b t s r p s j o
       uo-cit.sn
   add " l r . o f e
        cakcfe"
      run b n h b t
           i/uo
say h b t c a k 1 2 3 4 5
     uo lr
HUBOT PERSISTANCE
       simple storage through h b t b a n
                               uo.ri
     overloaded by redis-brain, mongo-brain, etc.
(you can find these in hubot-scripts or write your own)
You can save any arbitrary data in the brain.
#yumywn t wi utltebanhsbe iiilzd
  o a at o at ni h ri a en ntaie
#adteei adtbs cneto
  n hr s  aaae oncin
rbtbano 'odd,-
oo.ri.n lae' >
 rbtbanlsAcse =nwDt(
  oo.ri.atcesd    e ae)
 rbtbansaul =1
  oo.ri.egls   2
 rbtbanfoes={pnis tu,dfois fle}
  oo.ri.lwr     ase: re afdl: as


 #hbtbanrn o eet
   uo ri us n vns
 rbtbanei 'ae
  oo.ri.mt sv'
HUBOT HTTP LISTENER
   CREATE AND EDIT
  SRPSSYCFE
   CIT/A.OFE
qeytig=rqie'ursrn'
ursrn   eur(qeytig)

mdl.xot =(oo)-
oueeprs    rbt >
 rbtrue.e "hbtsy,(e,rs -
  oo.otrgt /uo/a" rq e) >
   qey=qeytigprerq_asdr.ur)
    ur  ursrn.as(e.preUlqey
   msae=qeymsae
    esg  ur.esg

  ue ={
   sr  }
  ue.om=qeyro i qeyro
   srro  ur.om f ur.om

  rbtsn(sr msae
   oo.edue, esg)
  rsed"ad#msae"
   e.n si {esg}
edit p c a e j o to include
              akg.sn
" u r s r n " " = 0 1 0 in the dependencies
 qeytig: > .."
              run n m i s a l
                   p ntl
               run b n h b t
                    i/uo
  visit l c l o t 8 8 / a ? e s g = e l
         oahs:00symsaehlo
DEPLOYMENT
99 times out of 100, you'll probably just deploy to Heroku
     h b t - creates a Heroku P o f l for you
      uo c                          rcie
                  run H r k c e t
                       eou rae
        deploy with g t p s h r k m s e
                     i uh eou atr
         start with h r k p : c l w b 1
                     eou ssae e=
  (you'll only have to run p : c l this the first time)
                            ssae
CHAT ADAPTERS
Hubot ships with a Campfire adapter. You can get more
                  from hubot-scripts.
         Assuming Heroku deployment, run
                Hrk cni:d
                  eou ofgad
         HBTCMFR_OE=ert
          UO_APIETKNsce
         HBTCMFR_OM=2,5
          UO_APIEROS1346
       HBTCMFR_CON=hbt
         UO_APIEACUT"uo"
Hubot: a look inside our robot friend

More Related Content

What's hot

DevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung FooDevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung Foobrian_dailey
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting BasicsDr.Ravi
 
Py conkr 20150829_docker-python
Py conkr 20150829_docker-pythonPy conkr 20150829_docker-python
Py conkr 20150829_docker-python
Eric Ahn
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basicsAbhay Sapru
 
Writing webapps with Perl Dancer
Writing webapps with Perl DancerWriting webapps with Perl Dancer
Writing webapps with Perl Dancer
Alexis Sukrieh
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
dcubeio
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
Javier Arturo Rodríguez
 
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonbСтажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
SmartTools
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
Alexandre Salomé
 
Gitosis on Mac OS X Server
Gitosis on Mac OS X ServerGitosis on Mac OS X Server
Gitosis on Mac OS X ServerYasuhiro Asaka
 
An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015
Andy Beverley
 
Txjs
TxjsTxjs
Quality Use Of Plugin
Quality Use Of PluginQuality Use Of Plugin
Quality Use Of Plugin
Yasuo Harada
 
PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)
xSawyer
 
Perl Dancer, FPW 2010
Perl Dancer, FPW 2010Perl Dancer, FPW 2010
Perl Dancer, FPW 2010
Alexis Sukrieh
 
Perl Dancer for Python programmers
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmers
xSawyer
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
Alessandro Franceschi
 
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
Abu Ashraf Masnun
 
Augeas
AugeasAugeas
Augeas
lutter
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
Ashrith Mekala
 

What's hot (20)

DevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung FooDevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung Foo
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
 
Py conkr 20150829_docker-python
Py conkr 20150829_docker-pythonPy conkr 20150829_docker-python
Py conkr 20150829_docker-python
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Writing webapps with Perl Dancer
Writing webapps with Perl DancerWriting webapps with Perl Dancer
Writing webapps with Perl Dancer
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonbСтажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonb
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
 
Gitosis on Mac OS X Server
Gitosis on Mac OS X ServerGitosis on Mac OS X Server
Gitosis on Mac OS X Server
 
An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015
 
Txjs
TxjsTxjs
Txjs
 
Quality Use Of Plugin
Quality Use Of PluginQuality Use Of Plugin
Quality Use Of Plugin
 
PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)
 
Perl Dancer, FPW 2010
Perl Dancer, FPW 2010Perl Dancer, FPW 2010
Perl Dancer, FPW 2010
 
Perl Dancer for Python programmers
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmers
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
 
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
 
Augeas
AugeasAugeas
Augeas
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 

Viewers also liked

Introduction to hubot
Introduction to hubotIntroduction to hubot
Introduction to hubot
Tencent
 
ChatOps with Hubot
ChatOps with HubotChatOps with Hubot
ChatOps with Hubot
Yoshiaki Yoshida
 
Let's talk ChatOps - Hubot with less CoffeeScript
Let's talk ChatOps - Hubot with less CoffeeScriptLet's talk ChatOps - Hubot with less CoffeeScript
Let's talk ChatOps - Hubot with less CoffeeScript
SarahKowalik
 
ChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robotsChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robots
Olivier Jacques
 
Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016
Geshan Manandhar
 
ChatOps
ChatOpsChatOps
Chat ops .. a beginner's guide
Chat ops .. a beginner's guideChat ops .. a beginner's guide
Chat ops .. a beginner's guide
Jason Hand
 
AI Machine vs Human
AI Machine vs HumanAI Machine vs Human
AI Machine vs Human
antimo musone
 
Create Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScriptCreate Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScript
Rob Scaduto
 
Chatbot workshop - How to build one.#digitized16
Chatbot workshop - How to build one.#digitized16Chatbot workshop - How to build one.#digitized16
Chatbot workshop - How to build one.#digitized16
Warply
 
An Introduction To Chat Bots
An Introduction To Chat BotsAn Introduction To Chat Bots
An Introduction To Chat Bots
Sohan Maheshwar
 

Viewers also liked (11)

Introduction to hubot
Introduction to hubotIntroduction to hubot
Introduction to hubot
 
ChatOps with Hubot
ChatOps with HubotChatOps with Hubot
ChatOps with Hubot
 
Let's talk ChatOps - Hubot with less CoffeeScript
Let's talk ChatOps - Hubot with less CoffeeScriptLet's talk ChatOps - Hubot with less CoffeeScript
Let's talk ChatOps - Hubot with less CoffeeScript
 
ChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robotsChatOps meetup: les humains parlent aux robots
ChatOps meetup: les humains parlent aux robots
 
Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016
 
ChatOps
ChatOpsChatOps
ChatOps
 
Chat ops .. a beginner's guide
Chat ops .. a beginner's guideChat ops .. a beginner's guide
Chat ops .. a beginner's guide
 
AI Machine vs Human
AI Machine vs HumanAI Machine vs Human
AI Machine vs Human
 
Create Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScriptCreate Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScript
 
Chatbot workshop - How to build one.#digitized16
Chatbot workshop - How to build one.#digitized16Chatbot workshop - How to build one.#digitized16
Chatbot workshop - How to build one.#digitized16
 
An Introduction To Chat Bots
An Introduction To Chat BotsAn Introduction To Chat Bots
An Introduction To Chat Bots
 

Similar to Hubot: a look inside our robot friend

Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
 
Embedding perl
Embedding perlEmbedding perl
Embedding perl
Marian Marinov
 
Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku Secrets
Heroku
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and Customization
Aniket Pant
 
An Introduction to PHP Dependency Management With Composer
An Introduction to PHP Dependency Management With ComposerAn Introduction to PHP Dependency Management With Composer
An Introduction to PHP Dependency Management With Composer
Oomph, Inc.
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
Wojciech Sznapka
 
WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutes
Owen Winkler
 
Embed--Basic PERL XS
Embed--Basic PERL XSEmbed--Basic PERL XS
Embed--Basic PERL XS
byterock
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnit
Edorian
 
A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1
jsalonen Salonen
 
Apache Hadoop Shell Rewrite
Apache Hadoop Shell RewriteApache Hadoop Shell Rewrite
Apache Hadoop Shell Rewrite
Allen Wittenauer
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
Geeks Anonymes
 
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Maarten Mulders
 
The Power of CSS
The Power of CSSThe Power of CSS
The Power of CSS
Aniket Pant
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnitEdorian
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
Ari Lerner
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleMattias Gees
 
Naughty And Nice Bash Features
Naughty And Nice Bash FeaturesNaughty And Nice Bash Features
Naughty And Nice Bash Features
Nati Cohen
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
Miloš Sutanovac
 

Similar to Hubot: a look inside our robot friend (20)

Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
 
Embedding perl
Embedding perlEmbedding perl
Embedding perl
 
Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku Secrets
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and Customization
 
An Introduction to PHP Dependency Management With Composer
An Introduction to PHP Dependency Management With ComposerAn Introduction to PHP Dependency Management With Composer
An Introduction to PHP Dependency Management With Composer
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
 
WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutes
 
Embed--Basic PERL XS
Embed--Basic PERL XSEmbed--Basic PERL XS
Embed--Basic PERL XS
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnit
 
A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1
 
Apache Hadoop Shell Rewrite
Apache Hadoop Shell RewriteApache Hadoop Shell Rewrite
Apache Hadoop Shell Rewrite
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)Building a DSL with GraalVM (VoxxedDays Luxembourg)
Building a DSL with GraalVM (VoxxedDays Luxembourg)
 
The Power of CSS
The Power of CSSThe Power of CSS
The Power of CSS
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnit
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Naughty And Nice Bash Features
Naughty And Nice Bash FeaturesNaughty And Nice Bash Features
Naughty And Nice Bash Features
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Hubot: a look inside our robot friend

  • 1.
  • 2. HUBOT A LOOK INSIDE OUR ROBOT FRIEND
  • 3. 1. Setting Up Hubot 2. Coffeescript Primer 3. Hubot Overview 4. APIs
  • 4.
  • 5. (disclaimer: this assumes OSX. commands should translate easily to windows and linux.)
  • 6. PREREQUISITES Install Node be isalnd rw ntl oe Install and run Redis add / s / o a / h r / p / i to your path urlclsaenmbn Install Hubot nmisal- cfe-cit p ntl g ofesrp nmisal- hbt p ntl g uo An Heroku account is suggested.
  • 7. FIND A NICE HOME c to directory of choice d run h b t - a r o to generate a boilerplate uo c ibt c aro d ibt cmd+ bnhbt ho x i/uo
  • 8. HELLO WORLD run b n h b t i/uo type h b t p n and hit enter uo ig
  • 9. A BRIEF DIVERSION INTO COFFEESCRIPT
  • 10. itoesg =(sr - nrMsae ue) > i ue?nm?adue?hby f sr.ae n sr.ob? "el,Ia #rsos.ae,"+ hlo m {epnenm} " #rsos.ob}s. a {epnehbyit" es le msae="laetl m mr aotyusl. esg Pes el e oe bu oref" msae esg m = e nm:"ak ae Jc" hby "uo crto" ob: Hbt uain cnoelgitoesg(e osl.o nrMsaem) #el,Ia Jc,aHbtcrtoit hlo m ak uo uains
  • 11. HUBOT STRUCTURE P o f l (Heroku startup script) rcie RAM.d EDEm b n (contains hubot executable) i/ e t r a - c i t . s n(list of packages from npm) xenlsrpsjo h b t s r p s j o (list of packages from hubot- uo-cit.sn scripts) p c a e j o (node package manager akg.sn metainformation) s r p s (custom hubot script directory) cit/
  • 12. A HUBOT SCRIPT EXAMPLE CREATE AND EDIT SRPSGOBECFE CIT/ODY.OFE
  • 13. gobe =[ odys "y,{ae., Be nm}" "ae,{ae., Ltr nm}" "aecr,{ae. Tk ae nm}" ] gobe=(ae - ody nm) > idx=pren(ahrno( *gobe.egh ne asItMt.adm) odyslnt) msae=gobe[ne] esg odysidx msaerpae/nm},nm) esg.elc({ae/ ae; mdl.xot =(oo)- oueeprs rbt > rbtha /beltr,(*/,(s)- oo.er (y|ae)?s.)i mg > i rbtnm.ooeCs( = mgmth2.ooeCs( f oo.aetLwrae) = s.ac[]tLwrae) beesg =gobemgmsaeue.ae yMsae ody(s.esg.srnm) mgsn(yMsae s.edbeesg)
  • 14.
  • 15. run b n h b tagain i/uo say g o b e H b t ody uo say l t r H b t ae, uo
  • 16. HUBOT-SCRIPTS GITHUB.COM/GITHUB/HUBOT-SCRIPTS hubot will automatically download and keep up-to-date any hubot-scripts you add
  • 17. copy the dependencies from the hubot-script into your pcaejo akg.sn from clark.coffee : #Dsrpin ecito: # Nn oe # #Dpnece: eednis # "lr" ".." cak: 005 # #Cniuain ofgrto: # Nn oe # #Cmad: omns # hbtcak<aa -bidsakie oto dt uo lr dt> ul prlns u f aa # #Ato: uhr # aakiid jcsfe
  • 18. edit h b t s r p s j o uo-cit.sn add " l r . o f e cakcfe" run b n h b t i/uo say h b t c a k 1 2 3 4 5 uo lr
  • 19.
  • 20. HUBOT PERSISTANCE simple storage through h b t b a n uo.ri overloaded by redis-brain, mongo-brain, etc. (you can find these in hubot-scripts or write your own)
  • 21. You can save any arbitrary data in the brain. #yumywn t wi utltebanhsbe iiilzd o a at o at ni h ri a en ntaie #adteei adtbs cneto n hr s aaae oncin rbtbano 'odd,- oo.ri.n lae' > rbtbanlsAcse =nwDt( oo.ri.atcesd e ae) rbtbansaul =1 oo.ri.egls 2 rbtbanfoes={pnis tu,dfois fle} oo.ri.lwr ase: re afdl: as #hbtbanrn o eet uo ri us n vns rbtbanei 'ae oo.ri.mt sv'
  • 22. HUBOT HTTP LISTENER CREATE AND EDIT SRPSSYCFE CIT/A.OFE
  • 23. qeytig=rqie'ursrn' ursrn eur(qeytig) mdl.xot =(oo)- oueeprs rbt > rbtrue.e "hbtsy,(e,rs - oo.otrgt /uo/a" rq e) > qey=qeytigprerq_asdr.ur) ur ursrn.as(e.preUlqey msae=qeymsae esg ur.esg ue ={ sr } ue.om=qeyro i qeyro srro ur.om f ur.om rbtsn(sr msae oo.edue, esg) rsed"ad#msae" e.n si {esg}
  • 24. edit p c a e j o to include akg.sn " u r s r n " " = 0 1 0 in the dependencies qeytig: > .." run n m i s a l p ntl run b n h b t i/uo visit l c l o t 8 8 / a ? e s g = e l oahs:00symsaehlo
  • 25. DEPLOYMENT 99 times out of 100, you'll probably just deploy to Heroku h b t - creates a Heroku P o f l for you uo c rcie run H r k c e t eou rae deploy with g t p s h r k m s e i uh eou atr start with h r k p : c l w b 1 eou ssae e= (you'll only have to run p : c l this the first time) ssae
  • 26. CHAT ADAPTERS Hubot ships with a Campfire adapter. You can get more from hubot-scripts. Assuming Heroku deployment, run Hrk cni:d eou ofgad HBTCMFR_OE=ert UO_APIETKNsce HBTCMFR_OM=2,5 UO_APIEROS1346 HBTCMFR_CON=hbt UO_APIEACUT"uo"