Merge pull request #980 from Infisical/fix-gitlab-integration-self-hosted

Update all GitLab integration URLs to point to self-hosted instances if applicable (else GitLab Cloud)
This commit is contained in:
BlackMagiq
2023-09-14 11:42:00 +01:00
committed by GitHub
5 changed files with 19 additions and 9 deletions

View File

@@ -160,7 +160,7 @@ export const getIntegrationAuthAccessHelper = async ({
let accessId;
let accessToken;
const integrationAuth = await IntegrationAuth.findById(integrationAuthId).select(
"workspace integration +accessCiphertext +accessIV +accessTag +accessExpiresAt +refreshCiphertext +refreshIV +refreshTag +accessIdCiphertext +accessIdIV +accessIdTag"
"workspace integration +accessCiphertext +accessIV +accessTag +accessExpiresAt +refreshCiphertext +refreshIV +refreshTag +accessIdCiphertext +accessIdIV +accessIdTag metadata"
);
if (!integrationAuth)

View File

@@ -120,6 +120,7 @@ const getApps = async ({
break;
case INTEGRATION_GITLAB:
apps = await getAppsGitlab({
integrationAuth,
accessToken,
teamId,
});
@@ -736,12 +737,16 @@ const getAppsTerraformCloud = async ({
* @returns {String} apps.name - name of GitLab site
*/
const getAppsGitlab = async ({
integrationAuth,
accessToken,
teamId,
}: {
integrationAuth: IIntegrationAuth;
accessToken: string;
teamId?: string;
}) => {
const gitLabApiUrl = integrationAuth.url ? `${integrationAuth.url}/api` : INTEGRATION_GITLAB_API_URL;
const apps: App[] = [];
let page = 1;
@@ -758,7 +763,7 @@ const getAppsGitlab = async ({
});
const { data } = await standardRequest.get(
`${INTEGRATION_GITLAB_API_URL}/v4/groups/${teamId}/projects`,
`${gitLabApiUrl}/v4/groups/${teamId}/projects`,
{
params,
headers: {
@@ -785,7 +790,7 @@ const getAppsGitlab = async ({
// case: fetch projects for individual in GitLab
const { id } = (
await standardRequest.get(`${INTEGRATION_GITLAB_API_URL}/v4/user`, {
await standardRequest.get(`${gitLabApiUrl}/v4/user`, {
headers: {
Authorization: `Bearer ${accessToken}`,
"Accept-Encoding": "application/json",
@@ -800,7 +805,7 @@ const getAppsGitlab = async ({
});
const { data } = await standardRequest.get(
`${INTEGRATION_GITLAB_API_URL}/v4/users/${id}/projects`,
`${gitLabApiUrl}/v4/users/${id}/projects`,
{
params,
headers: {

View File

@@ -34,6 +34,7 @@ const getTeams = async ({
switch (integrationAuth.integration) {
case INTEGRATION_GITLAB:
teams = await getTeamsGitLab({
integrationAuth,
accessToken,
});
break;
@@ -51,13 +52,17 @@ const getTeams = async ({
* @returns {String} teams.teamId - id of team
*/
const getTeamsGitLab = async ({
integrationAuth,
accessToken,
}: {
integrationAuth: IIntegrationAuth;
accessToken: string;
}) => {
const gitLabApiUrl = integrationAuth.url ? `${integrationAuth.url}/api` : INTEGRATION_GITLAB_API_URL;
let teams: Team[] = [];
const res = (await standardRequest.get(
`${INTEGRATION_GITLAB_API_URL}/v4/groups`,
`${gitLabApiUrl}/v4/groups`,
{
headers: {
Authorization: `Bearer ${accessToken}`,

View File

@@ -34,9 +34,9 @@ export const validateClientForIntegration = async ({
if (!integration) throw IntegrationNotFoundError();
const integrationAuth = await IntegrationAuth.findById(integration.integrationAuth).select(
"+refreshCiphertext +refreshIV +refreshTag +accessCiphertext +accessIV +accessTag +accessExpiresAt"
"+refreshCiphertext +refreshIV +refreshTag +accessCiphertext +accessIV +accessTag +accessExpiresAt metadata"
);
if (!integrationAuth) throw IntegrationAuthNotFoundError();
const accessToken = (

View File

@@ -30,9 +30,9 @@ const validateClientForIntegrationAuth = async ({
const integrationAuth = await IntegrationAuth.findById(integrationAuthId)
.populate<{ workspace: IWorkspace }>("workspace")
.select(
"+refreshCiphertext +refreshIV +refreshTag +accessCiphertext +accessIV +accessTag +accessExpiresAt"
"+refreshCiphertext +refreshIV +refreshTag +accessCiphertext +accessIV +accessTag +accessExpiresAt metadata"
);
if (!integrationAuth) throw IntegrationAuthNotFoundError();
let accessToken, accessId;