From 5e08ac2ab31900a6b28bfed2c708c7d39d75eb10 Mon Sep 17 00:00:00 2001 From: Aleksandr Shmaraiev Date: Fri, 19 May 2023 16:09:37 +0300 Subject: [PATCH] Add tests to check git flow with PAT setup --- .ci/openshift-ci/pat-secret.yaml | 16 +++++++++ .../test-github-with-pat-setup-flow.sh | 36 +++++++++++++++++++ .../test-gitlab-with-pat-setup-flow.sh | 36 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 .ci/openshift-ci/pat-secret.yaml create mode 100644 .ci/openshift-ci/test-github-with-pat-setup-flow.sh create mode 100644 .ci/openshift-ci/test-gitlab-with-pat-setup-flow.sh diff --git a/.ci/openshift-ci/pat-secret.yaml b/.ci/openshift-ci/pat-secret.yaml new file mode 100644 index 0000000000..f45ed810d5 --- /dev/null +++ b/.ci/openshift-ci/pat-secret.yaml @@ -0,0 +1,16 @@ +kind: Secret +apiVersion: v1 +metadata: + name: personal-access-token + labels: + app.kubernetes.io/component: scm-personal-access-token + app.kubernetes.io/part-of: che.eclipse.org + annotations: + che.eclipse.org/che-userid: che-user-id + che.eclipse.org/scm-personal-access-token-name: git-provider-name + che.eclipse.org/scm-url: git-provider-url + che.eclipse.org/scm-userid: 'git-provider-user-id' + che.eclipse.org/scm-username: chepullreq1 +data: + token: encoded-access-token +type: Opaque diff --git a/.ci/openshift-ci/test-github-with-pat-setup-flow.sh b/.ci/openshift-ci/test-github-with-pat-setup-flow.sh new file mode 100644 index 0000000000..53a01cf8e3 --- /dev/null +++ b/.ci/openshift-ci/test-github-with-pat-setup-flow.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (c) 2023 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# Red Hat, Inc. - initial API and implementation +# + +# exit immediately when a command fails +set -ex +# only exit with zero if all commands of the pipeline exit successfully +set -o pipefail + +export PUBLIC_REPO_URL=${PUBLIC_REPO_URL:-"https://github.com/chepullreq1/public-repo.git"} +export PRIVATE_REPO_URL=${PRIVATE_REPO_URL:-"https://github.com/chepullreq1/private-repo.git"} +export GIT_PROVIDER_TYPE=${GIT_PROVIDER_TYPE:-"github"} +export GIT_PROVIDER_URL=${GIT_PROVIDER_URL:-"https://github.com"} + +# import common test functions +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +source "${SCRIPT_DIR}"/common.sh + +trap "catchFinish" EXIT SIGINT + +setupTestEnvironment ${OCP_NON_ADMIN_USER_NAME} +setupPersonalAccessToken ${GIT_PROVIDER_TYPE} ${GIT_PROVIDER_URL} ${GITHUB_USER_ID} ${GITHUB_PAT} +testFactoryResolverWithPatOAuth ${PUBLIC_REPO_URL} ${PRIVATE_REPO_URL} +echo "[INFO] Check clone public repository with PAT setup" +testCloneGitRepoWithSetupPat ${PUBLIC_REPO_WORKSPACE_NAME} ${PUBLIC_PROJECT_NAME} ${PUBLIC_REPO_URL} ${USER_CHE_NAMESPACE} ${GITHUB_PAT} +echo "[INFO] Check clone private repository with PAT setup" +testCloneGitRepoWithSetupPat ${PRIVATE_REPO_WORKSPACE_NAME} ${PRIVATE_PROJECT_NAME} ${PRIVATE_REPO_URL} ${USER_CHE_NAMESPACE} ${GITHUB_PAT} diff --git a/.ci/openshift-ci/test-gitlab-with-pat-setup-flow.sh b/.ci/openshift-ci/test-gitlab-with-pat-setup-flow.sh new file mode 100644 index 0000000000..2c2b44f429 --- /dev/null +++ b/.ci/openshift-ci/test-gitlab-with-pat-setup-flow.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (c) 2023 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# Red Hat, Inc. - initial API and implementation +# + +# exit immediately when a command fails +set -ex +# only exit with zero if all commands of the pipeline exit successfully +set -o pipefail + +export PUBLIC_REPO_URL=${PUBLIC_REPO_URL:-"https://gitlab.com/chepullreq1/public-repo.git"} +export PRIVATE_REPO_URL=${PRIVATE_REPO_URL:-"https://gitlab.com/chepullreq1/private-repo.git"} +export GIT_PROVIDER_TYPE=${GIT_PROVIDER_TYPE:-"gitlab"} +export GIT_PROVIDER_URL=${GIT_PROVIDER_URL:-"https://gitlab.com"} + +# import common test functions +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +source "${SCRIPT_DIR}"/common.sh + +trap "catchFinish" EXIT SIGINT + +setupTestEnvironment ${OCP_NON_ADMIN_USER_NAME} +setupPersonalAccessToken ${GIT_PROVIDER_TYPE} ${GIT_PROVIDER_URL} ${GITLAB_USER_ID} ${GITLAB_PAT} +testFactoryResolverWithPatOAuth ${PUBLIC_REPO_URL} ${PRIVATE_REPO_URL} +echo "[INFO] Check clone public repository with PAT setup" +testCloneGitRepoWithSetupPat ${PUBLIC_REPO_WORKSPACE_NAME} ${PUBLIC_PROJECT_NAME} ${PUBLIC_REPO_URL} ${USER_CHE_NAMESPACE} ${GITLAB_PAT} +echo "[INFO] Check clone private repository with PAT setup" +testCloneGitRepoWithSetupPat ${PRIVATE_REPO_WORKSPACE_NAME} ${PRIVATE_PROJECT_NAME} ${PRIVATE_REPO_URL} ${USER_CHE_NAMESPACE} ${GITLAB_PAT}