コード例 #1
0
ファイル: jira.py プロジェクト: roaet/pyhole
    def keyword_jira(self, message, params=None, **kwargs):
        """Retrieve Jira ticket information (ex: jira NCP-1444)"""
        params = utils.ensure_int(params)
        if not params:
            return

        self._find_issue(message, params)
コード例 #2
0
ファイル: kernel.py プロジェクト: roaet/pyhole
    def keyword_k(self, message, params=None, **kwargs):
        """Retrieve kernel.org Bugzilla bug information (ex: K12345)"""
        params = utils.ensure_int(params)
        if not params:
            return

        params = {"id": params}
        url = "https://bugzilla.kernel.org/show_bug.cgi"
        response = utils.fetch_url(url, params=params)
        if response.status_code != 200:
            return

        soup = BeautifulSoup(response.content)
        desc = utils.decode_entities(soup.head.title.string)

        try:
            status = soup.find("span", {"id": "static_bug_status"}).string
            status = status.capitalize().split("\n")[0]

            assignee = utils.decode_entities(
                soup.findAll("span", {
                    "class": "vcard"
                })[0].contents[0].string)

            msg = "%s [Status: %s, Assignee: %s] %s"
            message.dispatch(msg % (desc, status, assignee, url))
        except TypeError:
            return
コード例 #3
0
    def keyword_jira(self, message, params=None, **kwargs):
        """Retrieve Jira ticket information (ex: jira NCP-1444)"""
        params = utils.ensure_int(params)
        if not params:
            return

        self._find_issue(message, params)
コード例 #4
0
ファイル: kernel.py プロジェクト: bdelliott/pyhole
    def keyword_k(self, message, params=None, **kwargs):
        """Retrieve kernel.org Bugzilla bug information (ex: K12345)"""
        if params:
            params = utils.ensure_int(params)
            if not params:
                return

            query = urllib.urlencode({"id": params})
            url = "http://bugzilla.kernel.org/show_bug.cgi?%s" % query
            response = self.irc.fetch_url(url, self.name)
            if not response or not isinstance(params, int):
                return

            soup = BeautifulSoup(response.read())
            desc = utils.decode_entities(soup.head.title.string)

            try:
                status = soup.find("span", {"id": "static_bug_status"}).string.strip().capitalize()
                assignee = utils.decode_entities(soup.findAll("span", {"class": "vcard"})[0].contents[0].string)

                msg = "Kernel.org %s [Status: %s, Assignee: %s] %s"
                message.dispatch(msg % (desc, status, assignee, url))

            except TypeError:
                return
コード例 #5
0
ファイル: kernel.py プロジェクト: pschwartz/pyhole
    def keyword_k(self, message, params=None, **kwargs):
        """Retrieve kernel.org Bugzilla bug information (ex: K12345)"""
        if params:
            params = utils.ensure_int(params)
            if not params:
                return

            query = urllib.urlencode({"id": params})
            url = "http://bugzilla.kernel.org/show_bug.cgi?%s" % query
            response = self.irc.fetch_url(url, self.name)
            if not response or not isinstance(params, int):
                return

            soup = BeautifulSoup(response.read())
            desc = utils.decode_entities(soup.head.title.string)

            try:
                status = soup.find("span", {
                    "id":
                    "static_bug_status"}).string.strip().capitalize()
                assignee = utils.decode_entities(
                    soup.findAll("span", {
                        "class": "vcard"
                    })[0].contents[0].string)

                msg = "Kernel.org %s [Status: %s, Assignee: %s] %s"
                message.dispatch(msg % (desc, status, assignee, url))

            except TypeError:
                return
コード例 #6
0
ファイル: xsa.py プロジェクト: kremlinkev/pyhole
 def keyword_xsa(self, message, params=None, **kwargs):
     """Retrieve XSA information (ex: xsa123 or xsa-123)."""
     # abs is needed in case we get 'xsa-123', that would be -123
     xsa_num = abs(utils.ensure_int(params))
     xsa_id = "XSA-%d" % xsa_num
     data = self._load_cached_xsa_data()
     msg = self._make_xsa_message(xsa_id, data)
     if not msg:
         msg = "Unable to find matching XSA."
     message.dispatch(msg)
コード例 #7
0
 def keyword_xsa(self, message, params=None, **kwargs):
     """Retrieve XSA information (ex: xsa123 or xsa-123)."""
     # abs is needed in case we get 'xsa-123', that would be -123
     xsa_num = abs(utils.ensure_int(params))
     xsa_id = "XSA-%d" % xsa_num
     data = self._load_cached_xsa_data()
     msg = self._make_xsa_message(xsa_id, data)
     if not msg:
         msg = "Unable to find matching XSA."
     message.dispatch(msg)
コード例 #8
0
ファイル: launchpad.py プロジェクト: roaet/pyhole
    def keyword_lp(self, message, params=None, **kwargs):
        """Retrieve Launchpad bug information (ex: LP12345)"""
        params = utils.ensure_int(params)
        if not params:
            return

        try:
            bug = self.launchpad.bugs[params]
            task = bug.bug_tasks[len(bug.bug_tasks) - 1]
            message.dispatch(
                "LP %s [Status: %s, Assignee: %s] %s"
                % (task.title, task.status, self._find_name(task.assignee_link), bug.web_link)
            )
        except Exception:
            return
コード例 #9
0
    def keyword_lp(self, message, params=None, **kwargs):
        """Retrieve Launchpad bug information (ex: LP12345)"""
        params = utils.ensure_int(params)
        if not params:
            return

        try:
            bug = self.launchpad.bugs[params]
            task = bug.bug_tasks[len(bug.bug_tasks) - 1]
            message.dispatch(
                "LP %s [Status: %s, Assignee: %s] %s" %
                (task.title, task.status, self._find_name(
                    task.assignee_link), bug.web_link))
        except Exception:
            return
コード例 #10
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_epic(self, message, params=None, **kwargs):
     """Retrieve VersionOne epic information (ex: E-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Epic", "E-%s" % params)
コード例 #11
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_request(self, message, params=None, **kwargs):
     """Retrieve VersionOne request information (ex: R-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Request", "R-%s" % params)
コード例 #12
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_goal(self, message, params=None, **kwargs):
     """Retrieve VersionOne goal information (ex: G-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Goal", "G-%s" % params)
コード例 #13
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_task(self, message, params=None, **kwargs):
     """Retrieve VersionOne task information (ex: TK-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Task", "TK-%s" % params)
コード例 #14
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_backlog(self, message, params=None, **kwargs):
     """Retrieve VersionOne backlog information (ex: B-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Story", "B-%s" % params)
コード例 #15
0
ファイル: versionone.py プロジェクト: bdelliott/pyhole
 def keyword_issue(self, message, params=None, **kwargs):
     """Retrieve VersionOne issue information (ex: I-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Issue", "I-%s" % params)
コード例 #16
0
ファイル: test_utils.py プロジェクト: bdelliott/pyhole
 def test_ensure_int(self):
     self.assertEqual(utils.ensure_int("3"), 3)
コード例 #17
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_goal(self, message, params=None, **kwargs):
     """Retrieve VersionOne goal information (ex: G-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Goal", "G-%s" % params)
コード例 #18
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_task(self, message, params=None, **kwargs):
     """Retrieve VersionOne task information (ex: TK-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Task", "TK-%s" % params)
コード例 #19
0
 def keyword_rm(self, message, params=None, **kwargs):
     """Retrieve Redmine bug information (ex: RM12345)."""
     params = utils.ensure_int(params)
     if params:
         self._find_issue(message, params)
コード例 #20
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_request(self, message, params=None, **kwargs):
     """Retrieve VersionOne request information (ex: R-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Request", "R-%s" % params)
コード例 #21
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_epic(self, message, params=None, **kwargs):
     """Retrieve VersionOne epic information (ex: E-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Epic", "E-%s" % params)
コード例 #22
0
ファイル: test_utils.py プロジェクト: posix4e/pyhole
 def test_ensure_int(self):
     self.assertEqual(utils.ensure_int("3"), 3)
コード例 #23
0
ファイル: test_utils.py プロジェクト: bdelliott/pyhole
 def test_ensure_int_3(self):
     self.assertEqual(utils.ensure_int("a"), None)
コード例 #24
0
ファイル: test_utils.py プロジェクト: posix4e/pyhole
 def test_ensure_int_3(self):
     self.assertEqual(utils.ensure_int("a"), None)
コード例 #25
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_issue(self, message, params=None, **kwargs):
     """Retrieve VersionOne issue information (ex: I-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Issue", "I-%s" % params)
コード例 #26
0
ファイル: redmine.py プロジェクト: jk0/pyhole
 def keyword_rm(self, message, params=None, **kwargs):
     """Retrieve Redmine bug information (ex: RM12345)."""
     params = utils.ensure_int(params)
     if params:
         self._find_issue(message, params)
コード例 #27
0
ファイル: versionone.py プロジェクト: pschwartz/pyhole
 def keyword_backlog(self, message, params=None, **kwargs):
     """Retrieve VersionOne backlog information (ex: B-01234)"""
     if params and not self.disabled:
         params = utils.ensure_int(params)
         if params:
             self._find_asset(message, "Story", "B-%s" % params)