Index: .gitignore
===================================================================
--- .gitignore
+++ .gitignore
@@ -4,3 +4,4 @@
 *.pyo
 env_trigger/
 jobtriggers.egg-info/
+conf/trigger.cfg
Index: conf/trigger.cfg.example
===================================================================
--- /dev/null
+++ conf/trigger.cfg.example
@@ -0,0 +1,10 @@
+[buildbot]
+username = username
+password = password
+url = http://localhost/buildbot
+
+[trigger]
+koji_tasks = rpmlint
+bodhi_tasks = examplebodhi
+valid_arches = i386,i686,x86_64,noarch
+koji_url = http://koji.fedoraproject.org/kojihub
Index: jobtriggers/bodhi_msg.py
===================================================================
--- jobtriggers/bodhi_msg.py
+++ jobtriggers/bodhi_msg.py
@@ -3,7 +3,7 @@
 import fedmsg.encoding
 import fedmsg.consumers
 
-from . import triggers, utils, settings
+from . import triggers, utils, config
 
 
 UNIT_TYPE = 'bodhi_update'
@@ -35,7 +35,7 @@
 
         arches = utils.get_arches(nvr=nvrs[0])
 
-        for task in settings.bodhi_tasks:
+        for task in config.bodhi_tasks:
             for arch in arches:
                 log.info('triggering %s for %s on %s', task, updatetitle, arch)
                 self.trigger.trigger_job(updatetitle, UNIT_TYPE, task, arch)
Index: jobtriggers/config.py
===================================================================
--- /dev/null
+++ jobtriggers/config.py
@@ -0,0 +1,29 @@
+import ConfigParser
+import io
+
+defaults = """
+[buildbot]
+username = username
+password = password
+url = http://localhost/buildbot
+
+[trigger]
+koji_tasks = rpmlint
+bodhi_tasks = examplebodhi
+valid_arches = i386,i686,x86_64,noarch
+koji_url = http://koji.fedoraproject.org/kojihub
+"""
+
+config = ConfigParser.ConfigParser()
+config.readfp(io.BytesIO(defaults))
+config.read(['/etc/taskotron/trigger.cfg', './conf/trigger.cfg'])
+
+
+buildbot_username = config.get('buildbot', 'username')
+buildbot_password = config.get('buildbot', 'password')
+buildbot_url = config.get('buildbot', 'url')
+
+koji_tasks = config.get('trigger', 'koji_tasks').split(',')
+bodhi_tasks = config.get('trigger', 'bodhi_tasks').split(',')
+valid_arches = config.get('trigger', 'valid_arches').split(',')
+koji_url = config.get('trigger', 'koji_url')
Index: jobtriggers/koji_msg.py
===================================================================
--- jobtriggers/koji_msg.py
+++ jobtriggers/koji_msg.py
@@ -4,7 +4,7 @@
 import fedmsg.encoding
 import fedmsg.consumers
 
-from . import triggers, utils, settings
+from . import triggers, utils, config
 
 
 UNIT_TYPE = 'koji_build'
@@ -39,7 +39,7 @@
 
         arches = utils.get_arches(buildid=buildid)
 
-        for task in settings.koji_tasks:
+        for task in config.koji_tasks:
             for arch in arches:
                 log.info('triggering %s for %s on %s', task, envr, arch)
                 self.trigger.trigger_job(envr, UNIT_TYPE, task, arch)
Index: jobtriggers/settings.py
===================================================================
--- jobtriggers/settings.py
+++ /dev/null
@@ -1,9 +0,0 @@
-buildbot = {
-    'username': "username",
-    'password': "password",
-    'url': "http://localhost/buildbot",
-}
-koji_tasks = ['rpmlint']
-bodhi_tasks = ['examplebodhi']
-valid_arches = ['i386', 'i686', 'x86_64', 'noarch']
-koji_url = "http://koji.fedoraproject.org/kojihub"
Index: jobtriggers/triggers.py
===================================================================
--- jobtriggers/triggers.py
+++ jobtriggers/triggers.py
@@ -1,7 +1,7 @@
 import pprint
 import requests
 
-from . import settings
+from . import config
 
 class BaseTrigger(object):
     """
@@ -28,16 +28,16 @@
     def trigger_job(self, item, item_type, taskname, arch):
         s = requests.session()
 
-        s.post('%s/login' % settings.buildbot['url'],
-               data={'username': settings.buildbot['username'],
-                     'passwd': settings.buildbot['password']})
+        s.post('%s/login' % config.buildbot_url,
+               data={'username': config.buildbot_username,
+                     'passwd': config.buildbot_password})
 
-        s.post('%s/builders/statictasks/force' % settings.buildbot['url'],
+        s.post('%s/builders/statictasks/force' % config.buildbot_url,
                data={'forcescheduler': 'rpmcheck',
                      'reason': 'triggered by fedmsg',
                      'item': item,
                      'item_type': item_type,
                      'taskname': taskname,
                      'arch': arch})
 
-        s.get('%s/logout' % settings.buildbot['url'])
+        s.get('%s/logout' % config.buildbot_url)
Index: jobtriggers/utils.py
===================================================================
--- jobtriggers/utils.py
+++ jobtriggers/utils.py
@@ -1,15 +1,15 @@
 import koji
 
-from . import settings
+from . import config
 
-koji_client = koji.ClientSession(settings.koji_url)
+koji_client = koji.ClientSession(config.koji_url)
 
 def get_arches(buildid=None, nvr=None):
     if buildid is None:
         info = koji_client.getBuild(nvr)
         buildid = info['id']
 
-    arches = set([rpm['arch'] for rpm in koji_client.listRPMs(buildid) if rpm['arch'] in settings.valid_arches])
+    arches = set([rpm['arch'] for rpm in koji_client.listRPMs(buildid) if rpm['arch'] in config.valid_arches])
 
     if 'i686' in arches:
         arches.remove('i686')
Index: taskotron-trigger.spec
===================================================================
--- taskotron-trigger.spec
+++ taskotron-trigger.spec
@@ -29,14 +29,18 @@
 rm -rf $RPM_BUILD_ROOT
 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
 
-# configuration file
+# configuration files
+mkdir -p %{buildroot}%{_sysconfdir}/%{name}/
+install conf/trigger.cfg.example %{buildroot}%{_sysconfdir}/taskotron/trigger.cfg
 mkdir -p %{buildroot}%{_sysconfdir}/fedmsg.d/
 install fedmsg.d/taskotron-trigger.py %{buildroot}%{_sysconfdir}/fedmsg.d/taskotron-trigger.py
 
 
 %files
 %doc readme.rst
 %{python_sitelib}/*
+%dir %{_sysconfdir}/taskotron
+%{_sysconfdir}/taskotron/trigger.cfg
 %{_sysconfdir}/fedmsg.d/taskotron-trigger.py*
 
 
Index: testing/test_bodhi_trigger.py
===================================================================
--- testing/test_bodhi_trigger.py
+++ testing/test_bodhi_trigger.py
@@ -26,8 +26,8 @@
 
     def test_consume(self, monkeypatch):
         monkeypatch.setattr(self.helper, 'trigger', Dingus())
-        monkeypatch.setattr(bodhi_msg.settings, 'bodhi_tasks', self.ref_tasks)
-        monkeypatch.setattr(bodhi_msg.settings, 'valid_arches', self.ref_validarches)
+        monkeypatch.setattr(bodhi_msg.config, 'bodhi_tasks', self.ref_tasks)
+        monkeypatch.setattr(bodhi_msg.config, 'valid_arches', self.ref_validarches)
         monkeypatch.setattr(bodhi_msg, 'utils', Dingus(get_arches__returns=self.ref_validarches))
 
         self.helper.consume(self.ref_message)
Index: testing/test_koji_trigger.py
===================================================================
--- testing/test_koji_trigger.py
+++ testing/test_koji_trigger.py
@@ -36,8 +36,8 @@
 
     def test_consume(self, monkeypatch):
         monkeypatch.setattr(self.helper, 'trigger', Dingus())
-        monkeypatch.setattr(koji_msg.settings, 'koji_tasks', self.ref_tasks)
-        monkeypatch.setattr(koji_msg.settings, 'valid_arches', self.ref_validarches)
+        monkeypatch.setattr(koji_msg.config, 'koji_tasks', self.ref_tasks)
+        monkeypatch.setattr(koji_msg.config, 'valid_arches', self.ref_validarches)
         monkeypatch.setattr(koji_msg, 'utils', Dingus(get_arches__returns=self.ref_validarches))
 
         self.helper.consume(self.ref_message)
