You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
535 lines
27 KiB
535 lines
27 KiB
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<title>GitHub Odoo Integration</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"/>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Plus+Jakarta+Sans:wght@600;700&display=swap"
|
|
rel="stylesheet"/>
|
|
<style>
|
|
body {
|
|
font-family: "Inter", sans-serif;
|
|
background: #fff;
|
|
color: #111;
|
|
}
|
|
h1, h2 {
|
|
font-family: "Plus Jakarta Sans", sans-serif;
|
|
font-weight: 700;
|
|
color: #111;
|
|
}
|
|
|
|
/* Hero */
|
|
.hero {
|
|
text-align: center;
|
|
padding: 80px 20px 60px;
|
|
}
|
|
.hero h1 {
|
|
font-size: 3rem;
|
|
font-weight: 700;
|
|
letter-spacing: -0.5px;
|
|
}
|
|
.hero h1 span {
|
|
color: #3B82F6;
|
|
}
|
|
.hero p {
|
|
font-size: 1.2rem;
|
|
color: #555;
|
|
margin-top: 10px;
|
|
}
|
|
.cta-btn {
|
|
margin-top: 25px;
|
|
padding: 12px 28px;
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
border-radius: 30px;
|
|
border: none;
|
|
background: #111;
|
|
color: #fff;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
transition: all .3s ease;
|
|
}
|
|
.cta-btn:hover {
|
|
background: #333;
|
|
transform: translateY(-3px);
|
|
}
|
|
|
|
/* Section */
|
|
.section {
|
|
padding: 70px 0;
|
|
}
|
|
.section h2 {
|
|
font-size: 1.8rem;
|
|
margin-bottom: 16px;
|
|
}
|
|
.section p {
|
|
font-size: 1rem;
|
|
color: #444;
|
|
}
|
|
|
|
/* Screenshot Box */
|
|
.screenshot-box {
|
|
border-radius: 14px;
|
|
padding: 10px;
|
|
background: #f9f9f9;
|
|
}
|
|
.screenshot-box img {
|
|
border-radius: 10px;
|
|
width: 100%;
|
|
height: auto;
|
|
cursor: zoom-in;
|
|
transition: transform .3s;
|
|
}
|
|
.screenshot-box img:hover {
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
/* Workflow */
|
|
.workflow-menu .nav-link {
|
|
font-weight: 600;
|
|
color: #444;
|
|
padding: 12px 16px;
|
|
border-radius: 8px;
|
|
margin-bottom: 6px;
|
|
transition: .3s;
|
|
}
|
|
.workflow-menu .nav-link.active {
|
|
background: #111;
|
|
color: #fff !important;
|
|
}
|
|
.workflow-menu .nav-link:hover { background: #f5f5f5; }
|
|
.workflow-menu .active:hover { background: #6b6060 !important; }
|
|
.workflow-content {
|
|
border-radius: 12px;
|
|
padding: 20px;
|
|
background: #fff;
|
|
box-shadow: 0 4px 14px rgba(0,0,0,.08);
|
|
height: 570px !important;
|
|
}
|
|
|
|
/* Lightbox */
|
|
.lightbox {
|
|
display: none;
|
|
position: fixed;
|
|
z-index: 1050;
|
|
top: 0; left: 0; right: 0; bottom: 0;
|
|
background: rgba(0,0,0,0.9);
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
.lightbox img {
|
|
max-width: 90%;
|
|
max-height: 90%;
|
|
border-radius: 10px;
|
|
box-shadow: 0 8px 20px rgba(0,0,0,.4);
|
|
}
|
|
.lightbox:target { display: flex; }
|
|
.lightbox-close {
|
|
position: absolute;
|
|
top: 20px; right: 30px;
|
|
font-size: 2rem;
|
|
color: #fff;
|
|
text-decoration: none;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* Carousel Arrows */
|
|
.carousel-control-prev-icon,
|
|
.carousel-control-next-icon {
|
|
background-image: none !important;
|
|
}
|
|
.carousel-control-prev-icon::after,
|
|
.carousel-control-next-icon::after {
|
|
font-family: "Font Awesome 6 Free";
|
|
font-weight: 900;
|
|
font-size: 28px;
|
|
color: #111;
|
|
}
|
|
.carousel-control-prev-icon::after { content: "\f104"; }
|
|
.carousel-control-next-icon::after { content: "\f105"; }
|
|
|
|
/* Related Products */
|
|
.product-overlay {
|
|
position: relative;
|
|
border-radius: 14px;
|
|
overflow: hidden;
|
|
box-shadow: 0 6px 18px rgba(0,0,0,.1);
|
|
}
|
|
.product-overlay img {
|
|
width: 100%;
|
|
height: auto;
|
|
display: block;
|
|
transition: transform .4s ease;
|
|
}
|
|
.product-overlay:hover img {
|
|
transform: scale(1.08);
|
|
}
|
|
.product-overlay .overlay {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(to top,rgba(0,0,0,0.7),rgba(0,0,0,0));
|
|
color: #fff;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-end;
|
|
padding: 20px;
|
|
opacity: 0;
|
|
transition: opacity .4s ease;
|
|
}
|
|
.product-overlay:hover .overlay { opacity: 1; }
|
|
.overlay h5 { font-weight: 600; margin-bottom: 10px; }
|
|
|
|
/* Footer */
|
|
.footer {
|
|
margin-top: 60px;
|
|
text-align: center;
|
|
font-size: 14px;
|
|
color: #666;
|
|
padding: 20px 0;
|
|
border-top: 1px solid #eee;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- Hero -->
|
|
<section class="hero">
|
|
<h1>GitHub <span>Odoo Integration</span></h1>
|
|
<p>Seamlessly connect GitHub with Odoo – manage repositories, branches, commits, issues & PRs from one place.</p>
|
|
<a href="#" class="cta-btn">Try Now</a>
|
|
</section>
|
|
|
|
<!-- Section 1 - Configuration Settings -->
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="row align-items-center">
|
|
<div class="col-md-4">
|
|
<h2>Configuration Settings</h2>
|
|
<p>Easily configure GitHub API credentials, webhook secrets, and access tokens directly from Odoo’s
|
|
settings menu.</p>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="screenshot-box">
|
|
<a href="#lightbox1"><img src="./assets/screenshots/config_settings.png"
|
|
alt="Configuration Settings"/></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Section 2 - Repository Setup -->
|
|
<section class="section bg-light">
|
|
<div class="container">
|
|
<div class="row align-items-center flex-md-row-reverse">
|
|
<div class="col-md-4">
|
|
<h2>Repository Setup</h2>
|
|
<p>Link one or more GitHub repositories with Odoo projects, sync metadata, and manage forks within
|
|
Odoo.</p>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="screenshot-box">
|
|
<a href="#lightbox2"><img src="./assets/screenshots/repository_setup.png"
|
|
alt="Repository Setup"/></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="row align-items-center">
|
|
<div class="col-md-4">
|
|
<h2>Branch Management</h2>
|
|
<p>Easily configure GitHub API credentials, webhook secrets, and access tokens directly from Odoo’s
|
|
settings menu.</p>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="screenshot-box">
|
|
<a href="#lightbox22"><img src="./assets/screenshots/branch_management.png" alt="Branch Management"/></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section bg-light">
|
|
<div class="container">
|
|
<div class="row align-items-center flex-md-row-reverse">
|
|
<div class="col-md-4">
|
|
<h2>Commits Tracking</h2>
|
|
<p>Track commits linked to tasks and manage real-time updates via GitHub webhooks.</p>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="screenshot-box">
|
|
<a href="#lightbox23"><img src="./assets/screenshots/commits.png" alt="Commits & PR Tracking"/></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Workflow Section -->
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2 class="text-center mb-5">Workflow Demo</h2>
|
|
<div class="row">
|
|
<!-- Sidebar -->
|
|
<div class="col-md-3">
|
|
<ul class="nav flex-column nav-pills workflow-menu" id="workflow-tabs">
|
|
<li><a class="nav-link active" data-bs-toggle="pill" href="#wf-config"><i
|
|
class="fa-solid fa-gear me-2"></i> Configuration</a></li>
|
|
<li><a class="nav-link" data-bs-toggle="pill" href="#wf-repo"><i
|
|
class="fa-solid fa-database me-2"></i> Repositories</a></li>
|
|
<li><a class="nav-link" data-bs-toggle="pill" href="#wf-branch"><i
|
|
class="fa-solid fa-code-branch me-2"></i> Branches</a></li>
|
|
<li><a class="nav-link" data-bs-toggle="pill" href="#wf-commit"><i
|
|
class="fa-solid fa-clock-rotate-left me-2"></i> Commits</a></li>
|
|
<li><a class="nav-link" data-bs-toggle="pill" href="#wf-pr"><i
|
|
class="fa-solid fa-code-pull-request me-2"></i> Pull Requests</a></li>
|
|
<li><a class="nav-link" data-bs-toggle="pill" href="#wf-issue"><i class="fa-solid fa-bug me-2"></i>
|
|
Issues</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Content -->
|
|
<div class="col-md-9">
|
|
<div class="tab-content workflow-content">
|
|
<div class="tab-pane fade show active" id="wf-config">
|
|
<h4>Configuration</h4>
|
|
<div id="carousel-config" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active"><p>1.Choose the github user access rights from the
|
|
user settings.</p>
|
|
<div class="screenshot-box"><a href="#lightbox3"><img
|
|
src="./assets/screenshots/config_settings_3.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item active"><p>2.Open the github configuration settings to setup
|
|
the API tokens and webhooks</p>
|
|
<div class="screenshot-box"><a href="#lightbox9"><img
|
|
src="./assets/screenshots/config_settings_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>3.Set up API tokens and webhooks easily inside Odoo.</p>
|
|
<div class="screenshot-box"><a href="#lightbox10"><img
|
|
src="./assets/screenshots/config_settings.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-config"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-config"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="wf-repo">
|
|
<h4>Repositories</h4>
|
|
<div id="carousel-repo" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active"><p>1.Enter the repository name and owner in the form
|
|
view, then click the <strong>Setup Webhook</strong> button to configure the webhook
|
|
in the GitHub repository.</p>
|
|
<div class="screenshot-box"><a href="#lightbox4"><img
|
|
src="./assets/screenshots/repository_setup_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>2.If the webhook is created successfully, a success
|
|
message will appear in the chatter, and the webhook URL will be generated.</p>
|
|
<div class="screenshot-box"><a href="#lightbox11"><img
|
|
src="./assets/screenshots/repository_setup_2.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>3.Click on the <strong>Sync Repository</strong> button to
|
|
synchronize all GitHub repository data into the Odoo repository.</p>
|
|
<div class="screenshot-box"><a href="#lightbox12"><img
|
|
src="./assets/screenshots/repository_setup_3.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>4. After the repository is successfully synced, the state
|
|
will change to <strong>Success</strong>, and all other details will be fetched.</p>
|
|
<div class="screenshot-box"><a href="#lightbox13"><img
|
|
src="./assets/screenshots/repository_setup_4.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-repo"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-repo"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="wf-branch">
|
|
<h4>Branches</h4>
|
|
<div id="carousel-branch" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active"><p>1.By clicking on the Branches, you can view all the
|
|
corresponding branches linked to each repository.</p>
|
|
<div class="screenshot-box"><a href="#lightbox5"><img
|
|
src="./assets/screenshots/branch_management_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>2.From the Branch form view, you can see all the details
|
|
related to the corresponding branch.</p>
|
|
<div class="screenshot-box"><a href="#lightbox14"><img
|
|
src="./assets/screenshots/branch_management_2.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>3.Click on the <strong>Sync Branch</strong> button to
|
|
synchronise the branch details from the github.</p>
|
|
<div class="screenshot-box"><a href="#lightbox15"><img
|
|
src="./assets/screenshots/branch_management_3.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item"><p>4.From the repository record, you can create a new branch
|
|
in GitHub directly from Odoo.</p>
|
|
<div class="screenshot-box"><a href="#lightbox16"><img
|
|
src="./assets/screenshots/branch_management_4.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item">
|
|
<div class="screenshot-box"><a href="#lightbox17"><img
|
|
src="./assets/screenshots/branch_management_5.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item">
|
|
<div class="screenshot-box"><a href="#lightbox18"><img
|
|
src="./assets/screenshots/branch_management_6.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-branch"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-branch"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="wf-commit">
|
|
<h4>Commits</h4>
|
|
<p>Track commits per branch and auto-link with tasks.</p>
|
|
<div id="carousel-commit" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active">
|
|
<div class="screenshot-box"><a href="#lightbox6"><img
|
|
src="./assets/screenshots/commits.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item">
|
|
<div class="screenshot-box"><a href="#lightbox19"><img
|
|
src="./assets/screenshots/commit_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-commit"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-commit"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="wf-pr">
|
|
<h4>Pull Requests</h4>
|
|
<p>Monitor open, closed, and merged pull requests.</p>
|
|
<div id="carousel-pr" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active">
|
|
<div class="screenshot-box"><a href="#lightbox7"><img
|
|
src="./assets/screenshots/pr_view_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item">
|
|
<div class="screenshot-box"><a href="#lightbox20"><img
|
|
src="./assets/screenshots/pr_view_2.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-pr"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-pr"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade" id="wf-issue">
|
|
<h4>Issues</h4>
|
|
<p>Track issues per repositories and auto-link with tasks.</p>
|
|
<div id="carousel-is" class="carousel slide mt-3" data-bs-ride="carousel">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active">
|
|
<div class="screenshot-box"><a href="#lightbox8"><img src="./assets/screenshots/is_view_1.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
<div class="carousel-item">
|
|
<div class="screenshot-box"><a href="#lightbox21"><img src="./assets/screenshots/is_view_2.png"
|
|
class="d-block w-100"/></a></div>
|
|
</div>
|
|
</div>
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-is"
|
|
data-bs-slide="prev"><span class="carousel-control-prev-icon"></span></button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carousel-is"
|
|
data-bs-slide="next"><span class="carousel-control-next-icon"></span></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Lightbox Modals -->
|
|
<div id="lightbox1" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/config_settings.png"/></div>
|
|
<div id="lightbox2" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/repository_setup.png"/></div>
|
|
<div id="lightbox3" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/config_settings_3.png"/></div>
|
|
<div id="lightbox9" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/config_settings_1.png"/></div>
|
|
<div id="lightbox10" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/config_settings.png"/></div>
|
|
<div id="lightbox4" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/repository_setup_1.png"/></div>
|
|
<div id="lightbox11" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/repository_setup_2.png"/></div>
|
|
<div id="lightbox12" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/repository_setup_3.png"/></div>
|
|
<div id="lightbox13" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/repository_setup_4.png"/></div>
|
|
<div id="lightbox5" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_1.png"/></div>
|
|
<div id="lightbox14" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_2.png"/></div>
|
|
<div id="lightbox15" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_3.png"/></div>
|
|
<div id="lightbox16" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_4.png"/></div>
|
|
<div id="lightbox17" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_5.png"/></div>
|
|
<div id="lightbox18" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management_6.png"/></div>
|
|
<div id="lightbox6" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/commits.png"/></div>
|
|
<div id="lightbox19" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/commit_1.png"/></div>
|
|
<div id="lightbox7" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/pr_view_1.png"/></div>
|
|
<div id="lightbox20" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/pr_view_2.png"/></div>
|
|
<div id="lightbox8" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/is_view_1.png"/></div>
|
|
<div id="lightbox21" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/is_view_2.png"/></div>
|
|
<div id="lightbox22" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/branch_management.png"/></div>
|
|
<div id="lightbox23" class="lightbox"><a href="#" class="lightbox-close">×</a><img
|
|
src="./assets/screenshots/commits.png"/></div>
|
|
|
|
<!-- Footer -->
|
|
<div class="footer">
|
|
<p>© 2025 Your Company | GitHub Odoo Integration</p>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
</body>
|
|
</html>
|
|
|