<?xml version='1.0' encoding='UTF-8'?>
<org.jenkinsci.plugins.ghprb.GhprbTrigger_-DescriptorImpl plugin="ghprb@1.39.0">
  <configVersion>1</configVersion>
  <whitelistPhrase>.*add\W+to\W+whitelist.*</whitelistPhrase>
  <okToTestPhrase>.*ok\W+to\W+test.*</okToTestPhrase>
  <retestPhrase>.*test\W+this\W+please.*</retestPhrase>
  <skipBuildPhrase>.*\[skip\W+ci\].*</skipBuildPhrase>
  <blackListCommitAuthor></blackListCommitAuthor>
  <cron>H/5 * * * *</cron>
  <useComments>false</useComments>
  <useDetailedComments>false</useDetailedComments>
  <manageWebhooks>false</manageWebhooks>
  <unstableAs>FAILURE</unstableAs>
  <autoCloseFailedPullRequests>false</autoCloseFailedPullRequests>
  <displayBuildErrorsOnDownstreamBuilds>false</displayBuildErrorsOnDownstreamBuilds>
  <githubAuth>
    <org.jenkinsci.plugins.ghprb.GhprbGitHubAuth>
      <serverAPIUrl>https://api.github.com</serverAPIUrl>
      <credentialsId>6b2a31e0-cd98-4ed9-bb19-a5e013c68e8a</credentialsId>
      <id>58f0694f-1760-4610-b4f2-73ffb34c61a3</id>
      <description></description>
      <secret>##SECRET:github_token_ghprb2##</secret>
    </org.jenkinsci.plugins.ghprb.GhprbGitHubAuth>
  </githubAuth>
  <adminlist></adminlist>
  <requestForTestingPhrase>Can one of the admins verify this patch?</requestForTestingPhrase>
  <extensions>
    <org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus>
      <commitStatusContext>ci.bazel.build</commitStatusContext>
      <triggeredStatus></triggeredStatus>
      <startedStatus></startedStatus>
      <statusUrl></statusUrl>
    </org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus>
  </extensions>
</org.jenkinsci.plugins.ghprb.GhprbTrigger_-DescriptorImpl>
