コード例 #1
0
ファイル: sync.py プロジェクト: mpapierski/issues
def sync():
    '''Push local issues, pull remote issues'''
    click.echo('listing issues...')
    base_url = settings['gitlab.url']
    token = settings['gitlab.token']
    project_name = settings['gitlab.project']
    cache_path = settings['gitlab.cache']
    cache = Database(cache_path)
    # Get local issues to avoid duplicate primary keys
    local_issues = set(id for (id, title) in cache.list_issues())
    repo = create_repository(base_url, token)
    for project in repo.projects:
        if project.name == project_name:
            for issue in repo.issues(project_id=project.id):
                if issue.id not in local_issues:
                    cache.insert_issue(issue.id, issue.title)
                    click.echo('New issue cached {0}'.format(issue.title))
            break