Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results

Target

Select target project
  • Dojo_Project_Nguyen/backend/dojobackendapi
  • dojo_project/projects/backend/dojobackendapi
2 results
Select Git revision
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results
Show changes
Commits on Source (9)
......@@ -4,8 +4,8 @@
#/--------------------------------------------------/
# development
DOTENV_VAULT_DEVELOPMENT="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"
DOTENV_VAULT_DEVELOPMENT="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"
# production
DOTENV_VAULT_PRODUCTION="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"
DOTENV_VAULT_PRODUCTION="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"
......@@ -4,6 +4,9 @@ import fs from 'fs';
import { Exercise } from '../types/DatabaseTypes';
type ConfigGitlabBadge = { link: string, imageUrl: string }
class Config {
public readonly api: {
port: number
......@@ -18,7 +21,7 @@ class Config {
};
public gitlab: {
apiURL: string; urls: Array<string>; account: { id: number; username: string; token: string; }; group: { root: number; templates: number; assignments: number; exercises: number; };
apiURL: string; urls: Array<string>; account: { id: number; username: string; token: string; }; group: { root: number; templates: number; assignments: number; exercises: number; }, badges: { pipeline: ConfigGitlabBadge }
};
public assignment: {
......@@ -50,6 +53,10 @@ class Config {
id: Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0), username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '', token: process.env.GITLAB_DOJO_ACCOUNT_TOKEN || ''
}, group : {
root: Number(process.env.GITLAB_GROUP_ROOT_ID || 0), templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0), assignments: Number(process.env.GITLAB_GROUP_ASSIGNMENTS_ID || 0), exercises: Number(process.env.GITLAB_GROUP_EXERCISES_ID || 0)
}, badges: {
pipeline: {
link: process.env.GITLAB_BADGE_PIPELINE_LINK || '', imageUrl: process.env.GITLAB_BADGE_PIPELINE_IMAGE_URL || ''
}
}
};
......
......@@ -111,6 +111,16 @@ class GitlabManager {
return response.data;
}
async addRepositoryBadge(repoId: number, linkUrl: string, imageUrl: string, name: string): Promise<GitlabMember> {
const response = await axios.post<GitlabMember>(this.getApiUrl(GitlabRoute.REPOSITORY_BADGES_ADD).replace('{{id}}', String(repoId)), {
link_url : linkUrl,
image_url: imageUrl,
name : name
});
return response.data;
}
async checkTemplateAccess(idOrNamespace: string, req: express.Request): Promise<StatusCodes> {
// Get the Gitlab project and check if it have public or internal visibility
try {
......
......@@ -87,6 +87,8 @@ class ExerciseRoutes implements RoutesManager {
await GitlabManager.addRepositoryVariable(repository.id, 'DOJO_SECRET', secret, false, true);
await GitlabManager.addRepositoryVariable(repository.id, 'DOJO_RESULTS_FOLDER', Config.exercise.pipelineResultsFolder, false, false);
await GitlabManager.addRepositoryBadge(repository.id, Config.gitlab.badges.pipeline.link, Config.gitlab.badges.pipeline.imageUrl, 'Pipeline Status');
break;
} catch ( error ) {
if ( error instanceof AxiosError ) {
......
Subproject commit 8d7e3ca0cca10e874ac48e19e47da8a1491ccba7
Subproject commit 6cff19278f7fa9664793e1d7826d2596597ac080