view commitwatcher/agent.py @ 8:2061b13f7aad

commitwatcher/agent.py
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 27 Sep 2013 14:04:04 -0700
parents 296af1d32b6a
children 08dd6fbbec3a
line wrap: on
line source

"""
agents to gather commits
"""

import feedparser
from .commit import Commit
from .store import MemoryStore

class Agent(object):
    """abstract base class"""

    def __init__(self, repository, store=None):
        """
        repository -- repo to monitor
        """
        self.repository = repository
        self.store = MemoryStore() if store is None else store


class LocalCheckoutAgent(object):
    """agent based on local checkouts"""


class FeedAgent(Agent):
    """gathers changesets by reading RSS/Atom"""

    def feed(self):
        """feed URL"""
        return '/'.join((self.repository.rstrip('/'), 'atom-log'))

    def update(self):
        """update"""

        feed = feedparser.parse(self.feed())
        for entry in feed['entries']:

            # get paths from diff
            link = entry['link']
            print link
            # TODO

            # TODO            commit = Commit()