view commitwatcher/agent.py @ 3:134cdb6a882c

commitwatcher/__init__.py
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 26 Sep 2013 22:19:07 -0700
parents 4cb3971d9d9d
children 883c88b13142
line wrap: on
line source

"""
agents to gather commits
"""

import feedparser
from .commit import Commit

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

    def __init__(self, repository, store):
        """
        repository -- repo to monitor
        """
        self.repository = repository
        self.store = 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 feedparser['entries']:

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

            commit = Commit()