Package: gitbot
DescriptionApplication will label issues on GitHub based on the issues’ title, contents and/or
comments. Labelling is determined by a set of regular expression rules.DocumentationFor up-to-date documentation, refer todocumentation.pip installationpip install gitbotAlso installs agitbotexecutable.Running testsClone this repository and runpython setup.py testin the root
directory. By default the tests that need authentication will be
replayed from stored betamax cassettes. This should be enough in most
cases.To re-generate betamax cassetteshave AUTH_FILE environment variable filled and pointing toauth.cfgfile. (seeauth.cfg.samplefor example contents)have fileauth.cfgfilled with credentials and runpython setup.py testin the root directoryDownload pip package viapip download gitbot. Then unzipgitbot-x.x.x.zip, cd into the directory and runpython setup.py test. The same testing details as described above
apply.Building documentationTo test and build the Gitbot documentation, do the following:
- Change folder todocs.
- Runpip install-rrequirements.txt.
- Runmake html(ormake.bat htmlon Windows) to build the documentation, or
- Runmake doctest(ormake.bat docteston Windows) to run documentation tests.Operation modesThere are two ways of running the bot:Console- actively polls GitHub for new issues and based on given
options labels them. Run asgithub_issues_bot.py console(...)Web app- passively listens for GitHub’s webhooks informing about
new or changed issues. The endpoint listening for GitHub calls is/callback. May be run from command line asgithub_issues_bot.py webor deployed as a WSGI application using
this wsgi config:import sys path = '/path/to/script/folder'
if path not in sys.path: sys.path.append(path)
from web\_listener import app as applicationQuick onelinerpython ./github_issues_bot.py console-i30-ddefault-tag--no-comments--no-process-titlemelkamar/mi-pyt-test-issuesWill process only body of the issue report. Any further comments nor the title of the issue will not be matched against rules.RulesRules are located in filerules.cfgby default. Any other file needs to be passed as a command line option.
The format for rules isregexp=>desired label.AuthenticationBot needs an authentication token with permissions to label issues. Token is stored inauth.cfgfile by default. See the example file for details.For web usage, the webhook secret has to be set inauth.cfgas well as the repository to be handled. The script will not do anything if the security check fails.Detailed parameters for console modeUsage: github_issues_bot.py console [OPTIONS] REPOSITORIES...

Options:
   -a, --auth TEXT Authentication file. See auth.cfg.sample.
   -v, --verbose Much verbosity. May be repeated multiple times. More v's, more
      info!
   -r, --rules-file TEXT File containing tagging rules.
   -i, --interval INTEGER Interval of repository checking in seconds. Default
      is 60 seconds. -d, --default-label TEXT Label to apply to an issue if no
      other rule applies. If empty, no label is applied. Defaults to no label.
   --process-title / --no-process-title Should the title of the issue be
      matched against the rules as well? Defaults to true. --comments /
   --no-comments Should comments be also matched against the rules?
      Defaults to true.
   --closed-issues / --no-closed-issues Should closed
      issues be still processed? Defaults to false.
   --skip-labelled / --no-skip-labelled Should issues that are labelled already be skipped?
      Defaults to true.
   --remove-current / --no-remove-current Should the
      current labels on an issue be removed if a rule matches? Defaults to
      false.
   --help Show this message and exit.