Example #1
0
    def import_tool(self,
                    project,
                    user,
                    project_name=None,
                    mount_point=None,
                    mount_label=None,
                    **kw):
        """ Import a Google Code repo into a new SVN, Git, or Hg Allura tool.

        """
        extractor = GoogleCodeProjectExtractor(project_name, 'source_browse')
        repo_type = extractor.get_repo_type()
        repo_url = get_repo_url(project_name, repo_type)
        app = project.install_app(REPO_ENTRY_POINTS[repo_type],
                                  mount_point=mount_point or 'code',
                                  mount_label=mount_label or 'Code',
                                  init_from_url=repo_url,
                                  import_id={
                                      'source': self.source,
                                      'project_name': project_name,
                                  })
        M.AuditLog.log('import tool %s from %s on %s' % (
            app.config.options.mount_point,
            project_name,
            self.source,
        ),
                       project=project,
                       user=user,
                       url=app.url)
        g.post_event('project_updated')
        return app
Example #2
0
def import_project_info(project_name):
    from forgeimporters.google.project import GoogleCodeProjectImporter
    importer = GoogleCodeProjectImporter(None)
    with ImportErrorHandler(importer, project_name, c.project) as handler:
        extractor = GoogleCodeProjectExtractor(project_name, 'project_info')
        extractor.get_short_description(c.project)
        extractor.get_icon(c.project)
        extractor.get_license(c.project)
        ThreadLocalORMSession.flush_all()
        g.post_event('project_updated')
Example #3
0
    def _to_python(self, value, state):
        value = super(self.__class__, self)._to_python(value, state)

        gc_project_name = value['gc_project_name']
        mount_point = value['mount_point']
        try:
            repo_type = GoogleCodeProjectExtractor(
                gc_project_name).get_repo_type()
        except urllib2.HTTPError as e:
            if e.code == 404:
                msg = 'No such project'
            else:
                msg = str(e)
            msg = 'gc_project_name:' + msg
            raise fe.Invalid(msg, value, state)
        except Exception:
            raise
        tool_class = REPO_APPS[repo_type]
        try:
            value['mount_point'] = v.MountPointValidator(tool_class).to_python(
                mount_point)
        except fe.Invalid as e:
            raise fe.Invalid('mount_point:' + str(e), value, state)
        return value