def test_skip(metadata, config): prepared = PreparedBuild() prepared.metadata = metadata config = config with pytest.raises(SkipRequestException): raise_if_skipped_build(prepared, config)
def handle_trigger_request(self, request): payload = request.get_json() if not payload: raise InvalidPayloadException() logger.debug("GitLab trigger payload %s", payload) # Lookup the default branch. gl_client = self._get_authorized_client() gl_project = gl_client.projects.get(self.config["build_source"]) if not gl_project: logger.debug("Skipping GitLab build; project %s not found", self.config["build_source"]) raise InvalidPayloadException() def lookup_commit(repo_id, commit_sha): commit = self.lookup_commit(repo_id, commit_sha) if commit is None: return None return dict(commit.attributes) default_branch = gl_project.attributes["default_branch"] metadata = get_transformed_webhook_payload( payload, default_branch=default_branch, lookup_user=self.lookup_user, lookup_commit=lookup_commit, ) prepared = self.prepare_build(metadata) # Check if we should skip this build. raise_if_skipped_build(prepared, self.config) return prepared
def handle_trigger_request(self, request): # Check the payload to see if we should skip it based on the lack of a head_commit. payload = request.get_json() if payload is None: raise InvalidPayloadException("Missing payload") # This is for GitHub's probing/testing. if "zen" in payload: raise SkipRequestException() # Lookup the default branch for the repository. if "repository" not in payload: raise InvalidPayloadException("Missing 'repository' on request") if "owner" not in payload["repository"]: raise InvalidPayloadException("Missing 'owner' on repository") if "name" not in payload["repository"]["owner"]: raise InvalidPayloadException("Missing owner 'name' on repository") if "name" not in payload["repository"]: raise InvalidPayloadException("Missing 'name' on repository") default_branch = None lookup_user = None try: repo_full_name = "%s/%s" % ( payload["repository"]["owner"]["name"], payload["repository"]["name"], ) gh_client = self._get_client() repo = gh_client.get_repo(repo_full_name) default_branch = repo.default_branch lookup_user = self.lookup_user except GitHubBadCredentialsException: logger.exception( "Got GitHub Credentials Exception; Cannot lookup default branch" ) except GithubException: logger.exception( "Got GitHub Exception when trying to start trigger %s", self.trigger.id) raise SkipRequestException() logger.debug("GitHub trigger payload %s", payload) metadata = get_transformed_webhook_payload( payload, default_branch=default_branch, lookup_user=lookup_user) prepared = self.prepare_build(metadata) # Check if we should skip this build. raise_if_skipped_build(prepared, self.config) return prepared
def test_does_not_skip(): prepared = PreparedBuild() prepared.metadata = { "ref": "ref/heads/master", "commit_info": { "message": "some cool message", }, } config = { "branchtag_regex": "(master)|(heads/master)", } raise_if_skipped_build(prepared, config)
def handle_trigger_request(self, request): payload = request.data if not payload: raise InvalidPayloadException('Missing expected payload') logger.debug('Payload %s', payload) metadata = self._metadata_from_payload(payload, self.config['build_source']) prepared = self.prepare_build(metadata) # Check if we should skip this build. raise_if_skipped_build(prepared, self.config) return prepared
def test_does_not_skip(): prepared = PreparedBuild() prepared.metadata = { 'ref': 'ref/heads/master', 'commit_info': { 'message': 'some cool message', }, } config = { 'branchtag_regex': '(master)|(heads/master)', } raise_if_skipped_build(prepared, config)
def handle_trigger_request(self, request): payload = request.get_json() if payload is None: raise InvalidPayloadException("Missing payload") logger.debug("Got BitBucket request: %s", payload) repository = self._get_repository_client() default_branch = self._get_default_branch(repository) metadata = get_transformed_webhook_payload(payload, default_branch=default_branch) prepared = self.prepare_build(metadata) # Check if we should skip this build. raise_if_skipped_build(prepared, self.config) return prepared