Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Only the frontend and the UI server are built in the image
.git
.github
docker
docs
tests
**/node_modules
**/dist
.quasar
coverage
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: 🐛 Bug Report
description: Report a bug to help us improve the project
title: "[BUG] - <title>"
labels: ["bug", "🆕 Needs triage"]
assignees: []

body:
- type: markdown
attributes:
value: "Please fill out this template carefully to help us reproduce and fix the issue."

- type: textarea
id: description
attributes:
label: "Description"
description: "Describe the bug in detail."
placeholder: "A clear and concise description of what the bug is."

- type: textarea
id: steps_to_reproduce
attributes:
label: "To Reproduce"
description: "Steps to reproduce the behavior"
placeholder: "1. Go to ...\n2. Click on ...\n3. See error"

- type: textarea
id: current_behavior
attributes:
label: "Current behavior"
description: "Describe what is happening instead of the expected behavior"
placeholder: "What actually happens?"

- type: textarea
id: expected_behavior
attributes:
label: "Expected behavior"
description: "Describe what you expected to happen"
placeholder: "What should happen instead?"

- type: textarea
id: screenshots
attributes:
label: "Screenshots"
description: "If applicable, add screenshots to help explain your problem"
placeholder: "Paste screenshot links or attach images"

- type: input
id: app_version
attributes:
label: "App version"
description: "Which version of the application are you using?"
placeholder: "e.g. 1.2.3"

- type: input
id: plugins
attributes:
label: "Plugins and versions"
description: "List any plugins or extensions and their versions"
placeholder: "Plugin X v1.0, Plugin Y v2.3"

- type: dropdown
id: device_type
attributes:
label: "Device type"
description: "Select the type of device"
options:
- "All"
- "PC"
- "Smartphone"
- "Tablet"

- type: dropdown
id: browser
attributes:
label: "Browser"
description: "Select the browser you are using"
options:
- "All"
- "Chrome"
- "Firefox"
- "Safari"
- "Edge"
- "Other"
90 changes: 90 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: 🚀 Feature Request / Enhancement
description: Suggest a new feature or improvement for the project
title: "[FEATURE] - <title>"
labels: ["enhancement", "🆕 Needs triage"]
assignees: []

body:
- type: markdown
attributes:
value: "Please provide detailed information to help us understand and evaluate your feature request."

- type: textarea
id: feature_summary
attributes:
label: "Feature summary"
description: "Provide a short title or summary of the feature you want"
placeholder: "E.g., Add dark mode option"

- type: textarea
id: detailed_description
attributes:
label: "Detailed description"
description: "Explain the feature or improvement in detail"
placeholder: "Describe the feature, its purpose, and how it should work"

- type: textarea
id: benefits
attributes:
label: "Benefits"
description: "Explain why this feature is useful or what problem it solves"
placeholder: "E.g., Improve accessibility for low-light environments"

- type: textarea
id: alternatives
attributes:
label: "Alternatives considered"
description: "Describe any alternative solutions or approaches you considered"
placeholder: "E.g., Using a browser extension, a different workflow, etc."

- type: dropdown
id: scope
attributes:
label: "Scope"
description: "Specify if this feature concerns the core app, a plugin, or unsure"
options:
- "Core application"
- "Plugin"
- "Unsure / I don't know"

- type: input
id: app_version
attributes:
label: "App version"
description: "Which version of the application would benefit from this feature?"
placeholder: "e.g., 1.2.3"

- type: dropdown
id: priority
attributes:
label: "Priority"
description: "How important is this feature to you?"
options:
- "Low"
- "Medium"
- "High"
- "Urgent"

- type: dropdown
id: device_type
attributes:
label: "Device type"
description: "Select the type of device you are targeting"
options:
- "All"
- "PC"
- "Smartphone"
- "Tablet"

- type: dropdown
id: browser
attributes:
label: "Browser"
description: "Select the browser you are using (if relevant)"
options:
- "All"
- "Chrome"
- "Firefox"
- "Safari"
- "Edge"
- "Other"
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: ❓ Question / Help
description: Ask a question about the tool, a feature, or usage
title: "[QUESTION] - <title>"
labels: ["question", "🆕 Needs triage"]
assignees: []

body:
- type: markdown
attributes:
value: "Please provide as much information as possible so we can answer your question effectively."

- type: textarea
id: question_summary
attributes:
label: "Question summary"
description: "Provide a brief summary of your question"
placeholder: "E.g., How do I enable feature X?"

- type: textarea
id: detailed_description
attributes:
label: "Detailed description"
description: "Explain your question in detail"
placeholder: "Include context, what you have tried, and what you want to achieve."

- type: input
id: app_version
attributes:
label: "App version"
description: "Which version of the application are you using?"
placeholder: "e.g., 1.2.3"
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: 🔒 Security / Dependency Issue
description: Report a security vulnerability or dependency issue
title: "[SECURITY] - <title>"
labels: ["security", "🆕 Needs triage"]
assignees: []

body:
- type: markdown
attributes:
value: |
⚠️ **Do not include sensitive information in this public issue.**
If this is a vulnerability, please follow responsible disclosure procedures.

**Important:** If this is a **critical vulnerability** or could **endanger the application**, please **contact the project maintainers directly** via a private message/email. You will be **credited** for reporting the issue and/or helping to fix it.

- type: textarea
id: issue_summary
attributes:
label: "Summary of the issue"
description: "Provide a short summary of the security or dependency problem"
placeholder: "E.g., Outdated library X with known vulnerability CVE-1234"

- type: textarea
id: detailed_description
attributes:
label: "Detailed description"
description: "Describe the problem in detail, without including sensitive information"
placeholder: "Include context, version numbers, and affected modules"

- type: textarea
id: steps_to_reproduce
attributes:
label: "Steps to reproduce / observe"
description: "Explain how the issue can be observed without exposing sensitive data"
placeholder: "Step 1: ..., Step 2: ..."

- type: input
id: app_version
attributes:
label: "App version"
description: "Which version of the application is affected?"
placeholder: "e.g., 1.2.3"

- type: input
id: dependencies
attributes:
label: "Dependencies involved"
description: "List the affected libraries/plugins and their versions"
placeholder: "E.g., library X v1.0.0, plugin Y v2.3.1"

- type: dropdown
id: severity
attributes:
label: "Severity"
description: "Estimate the severity of the issue"
options:
- "Low"
- "Medium"
- "High"
- "Urgent"

- type: dropdown
id: disclosure_preference
attributes:
label: "Disclosure preference"
description: "Should this be handled privately?"
options:
- "Public discussion is OK"
- "Report privately (recommended for vulnerabilities)"
19 changes: 19 additions & 0 deletions .github/actions/pnpm-install/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: 'Install dependencies with pnpm'
description: 'Enable pnpm through corepack (version from package.json) and install dependencies. Meant to run in a node container.'

inputs:
working-directory:
description: 'Working directory for pnpm install'
required: false
default: '.'

runs:
using: 'composite'
steps:
- name: Install dependencies
shell: bash
working-directory: ${{ inputs.working-directory }}
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
corepack enable
pnpm install --frozen-lockfile
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2

updates:
- package-ecosystem: "maven"
directory: "/api"
target-branch: "main"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 1
groups:
api-dependencies:
patterns:
- "*"
commit-message:
prefix: "chore(api)"
labels:
- "dependencies"
- "api"
51 changes: 51 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Docker

on:
push:
tags:
- "v*"

permissions:
contents: read

jobs:
docker-build-and-publish:
name: Build and publish ${{ matrix.image }} Docker image
runs-on: linagora
strategy:
matrix:
include:
- image: linagora/lin-open-factory-ui
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Read OpenBao secrets
uses: hashicorp/vault-action@892a26828f195e65540a40b4768ae4571f51ebfc # v4.0.0
with:
url: https://obao.linagora.com
namespace: LPS/global
method: approle
roleId: ${{ secrets.BAO_CLIENT_ID }}
secretId: ${{ secrets.BAO_CLIENT_TOKEN }}
secrets: |
secret/data/dockerhub USERNAME | DOCKERHUB_USERNAME ;
secret/data/dockerhub TOKEN | DOCKERHUB_TOKEN

- name: Log in to Docker Hub
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with:
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ env.DOCKERHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: Dockerfile
push: true
tags: |
${{ matrix.image }}:latest
${{ matrix.image }}:${{ github.ref_name }}
Loading