コード例 #1
0
ファイル: bitbucketmock.py プロジェクト: xzwupeng/quay
def get_bitbucket_trigger(dockerfile_path=''):
  trigger_obj = AttrDict(dict(auth_token='foobar', id='sometrigger'))
  trigger = BitbucketBuildTrigger(trigger_obj, {
    'build_source': 'foo/bar',
    'dockerfile_path': dockerfile_path,
    'nickname': 'knownuser',
    'account_id': 'foo',
  })

  trigger._get_client = get_mock_bitbucket
  return trigger
コード例 #2
0
ファイル: bitbucketmock.py プロジェクト: sabre1041/quay-1
def get_bitbucket_trigger(dockerfile_path=""):
    trigger_obj = AttrDict(dict(auth_token="foobar", id="sometrigger"))
    trigger = BitbucketBuildTrigger(
        trigger_obj,
        {
            "build_source": "foo/bar",
            "dockerfile_path": dockerfile_path,
            "nickname": "knownuser",
            "account_id": "foo",
        },
    )

    trigger._get_client = get_mock_bitbucket
    return trigger
コード例 #3
0
ファイル: bitbuckettrigger.py プロジェクト: xzwupeng/quay
def attach_bitbucket_build_trigger(trigger_uuid):
    trigger = model.build.get_build_trigger(trigger_uuid)
    if not trigger or trigger.service.name != BitbucketBuildTrigger.service_name(
    ):
        abort(404)

    if trigger.connected_user != current_user.db_user():
        abort(404)

    verifier = request.args.get('oauth_verifier')
    handler = BuildTriggerHandler.get_handler(trigger)
    result = handler.exchange_verifier(verifier)
    if not result:
        trigger.delete_instance()
        return 'Token has expired'

    namespace = trigger.repository.namespace_user.username
    repository = trigger.repository.name

    repo_path = '%s/%s' % (namespace, repository)
    full_url = url_for('web.buildtrigger',
                       path=repo_path,
                       trigger=trigger.uuid)

    logger.debug('Redirecting to full url: %s', full_url)
    return redirect(full_url)
コード例 #4
0
def attach_bitbucket_trigger(namespace_name, repo_name):
    permission = AdministerRepositoryPermission(namespace_name, repo_name)
    if permission.can():
        repo = model.repository.get_repository(namespace_name, repo_name)
        if not repo:
            msg = "Invalid repository: %s/%s" % (namespace_name, repo_name)
            abort(404, message=msg)
        elif repo.kind.name != "image":
            abort(501)

        trigger = model.build.create_build_trigger(
            repo, BitbucketBuildTrigger.service_name(), None,
            current_user.db_user())

        try:
            oauth_info = BuildTriggerHandler.get_handler(
                trigger).get_oauth_url()
        except TriggerProviderException:
            trigger.delete_instance()
            logger.debug("Could not retrieve Bitbucket OAuth URL")
            abort(500)

        config = {"access_token": oauth_info["access_token"]}

        access_token_secret = oauth_info["access_token_secret"]
        model.build.update_build_trigger(trigger,
                                         config,
                                         auth_token=access_token_secret)

        return redirect(oauth_info["url"])

    abort(403)