Remove the personalAccessTokenManager.get() call from the OAuth API getToken() method. The OAuth API must not know anything about PAT secrets. It should get tokens only by requesting an SCM provider OAuth API. Fix validating the Bitbucket-Server PAT method by requesting user instead of requesting. This prevents the code execution going to a recursive loop: bitbucketServerApiClient.getPersonalAccessToken() calls oauthApi.getToken() which referred to personalAccessTokenManager.getToken() which validated the token by calling scmPersonalAccessTokenFetcher.getScmUsername() -> bitbucketServerApiClient.getPersonalAccessToken(). |
||
|---|---|---|
| .ci/openshift-ci | ||
| .github | ||
| .mvn | ||
| .vscode | ||
| assembly | ||
| core | ||
| deploy/cert-manager | ||
| dockerfiles | ||
| docs | ||
| infrastructures | ||
| multiuser | ||
| typescript-dto | ||
| wsmaster | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| NUMBERING.md | ||
| README.md | ||
| RELEASE.md | ||
| check_properties_description.sh | ||
| devfile.yaml | ||
| make-release.sh | ||
| pom.xml | ||
README.md
What is Che server
Che Server provides an API for managing Kubernetes namespaces, and to retrieve devfile content from repositories, hosted on GitHub, GitLab, Bitbucket, and Microsoft Azure Repos.
Project structure
Che Server is mostly a Java web application deployed on an Apache Tomcat server in a container. Che Server uses the following modules:
OAuth1 / OAuth2 API implementations
- wsmaster/che-core-api-auth
- wsmaster/che-core-api-azure-devops
- wsmaster/che-core-api-bitbucket
- wsmaster/che-core-api-github
- wsmaster/che-core-api-gitlab
Factory flow implementations
- wsmaster/che-core-api-factory-azure-devops
- wsmaster/che-core-api-factory-bitbucket
- wsmaster/che-core-api-factory-bitbucket-server
- wsmaster/che-core-api-factory-github
- wsmaster/che-core-api-factory-gitlab
- wsmaster/che-core-api-factory-shared
Kubernetes namespace provisioning
- infrastructures/kubernetes
- infrastructure/openshift
- infrastructures/infrastructure-factory
Other modules are deprecated and will be removed in the future.
Build requirements
- Apache Maven 3.6.3 or later
- JDK 11
- Podman or Docker (required for running integration tests)
Sources build
Run mvn clean install to build. Activate a faster profile build by adding -Pfast.
Image build and push
- Go to the
dockerfilesdirectory. - Run
./build.sh. - Tag the che-server image with your account:
docker tag quay.io/eclipse/che-server:next <docker registry>/<your account>/che-server:next. - Push the che-server image to your account:
docker push <docker registry>/<your account>/che-server:next.
Debug
- Deploy Che to a Red Hat OpenShift or Minikube cluster by using a previously built image:
chectl server:start --platform=<openshift / minikube> --cheimage=<docker registry>/<your account>/che-server:next. - Enable local debugging of the Eclipse Che server:
chectl server:debug. - In your IDE, create a new Remote JVM Debug configuration on
localhost:8000. - Hit a breakpoint in the code and activate the debug configuration.
CI
There are several GitHub Actions workflows implemented for this repository:
Builds Maven artifacts, builds container images and pushes them to quay.io on each commit tomainbranch.
Builds Maven artifacts and container images. Images are public and pushed to quay.io. See RELEASE.md for more information about this workflow.
Creates a GitHub release which will include a generated changelog.
Runs on each commit tomainbranch.
Builds Maven artifacts and container images. This workflow is used as a check for all pull requests that are submitted to this project.
Runs Sonar against the main branch. The result can be seen here.
Used as a check for pull requests that are submitted to this project.
Downstream builds can be found at the link below, which is internal to Red Hat. Stable builds can be found by replacing the 3.x with a specific version like 3.2.
License
Join the community
The Eclipse Che community is globally reachable through public chat rooms, mailing list and weekly calls. See the Eclipse Che Documentation about how you can join our community.
Report issues
Issues are tracked on the main Eclipse Che Repository: https://github.com/eclipse/che/issues