| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Sales (sale_management)
• Subscriptions (sale_subscription) • Invoicing (account) • Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 5264 |
| Technical Name |
github_sales_access |
| License | OPL-1 |
| Website | https://www.ganemo.co |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Sales (sale_management)
• Subscriptions (sale_subscription) • Invoicing (account) • Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 5264 |
| Technical Name |
github_sales_access |
| License | OPL-1 |
| Website | https://www.ganemo.co |
GitHub Sales Access
Subscription-Driven GitHub Collaborator Control
Automatically grant and revoke GitHub repository access based on your Odoo sales subscriptions. Track every collaborator, detect orphans, and keep your codebase secure — without leaving Odoo.
What We're Solving
----------------
Manual Access is Risky
When a customer's subscription expires, their GitHub access should be revoked immediately. Without automation, collaborators accumulate — creating security gaps and IP leaks in your private repositories.
Zero Visibility
Sales teams had no way to see which GitHub users have access to which repositories linked to their orders. This module adds a Smart Button on every sale order so the answer is one click away.
Orphan Collaborators
GitHub users who were once clients but whose subscriptions expired often remain as collaborators. The weekly cron automatically detects these orphans and alerts the admin via Odoo activities.
Multi-Repo Complexity
A single connector product can grant access to multiple repositories. The two-level architecture cleanly separates the user grant (parent) from each individual repository permission (child records).
Setup & User Manual
Step-by-Step implementation
1. Prerequisites & Installation
Before using GitHub Sales Access, ensure the following are in place:
- Install GitHub Product Document module (dependency — provides the GitHub Connector product type and github.repository model).
- Configure at least one GitHub Repository (Sales > GitHub Repositories) and link a GitHub API token to it.
- Mark the relevant product as GitHub Connector (checkbox on the product form).
- Ensure your Odoo partners
have the GitHub Login field filled in
(field
github_nameon res.partner).
2. Granting Access (Daily Workflow)
How to grant GitHub access to a subscriber:
Step 1 — Sales Order
Create or open the sale order containing the GitHub Connector product line. Confirm the order (state = Sale Order).
Step 2 — Smart Button
Click the GitHub Access Smart Button (top-right of the sale order). This opens the list of github.sales.access records linked to this order.
Step 3 — Set GitHub User
Create a new access record. Set the GitHub User (Partner) field to the Odoo partner whose github_name matches the client's GitHub login.
Step 4 — Sync
In the Repositories tab, add the target repositories and click Sync per row — or use the Sync All button at the top to sync all repos at once.
3. Automated Crons & Revoke
Monthly Sync Cron
Every month, the system re-invites all active collaborators to their repositories to ensure GitHub's invitation acceptance is still valid. Runs automatically — no action needed.
Weekly Orphan Detection
Each week, GitHub collaborators are compared against active Odoo subscriptions. Any orphan (collaborator without subscription) triggers an activity alert for the admin to review and take action.
Manual Revoke
Use the Revoke button on a repository row to immediately remove the collaborator from GitHub. Or use Revoke All on the parent record to revoke access to all linked repositories at once.
Discrepancy Filters
The GitHub Access menu includes predefined filters to surface anomalies: Active in GitHub but subscription expired and Subscription active but no GitHub user set.
Global Ready | Multi-Language Support
This module is fully translated into English and Spanish (en_US, es_ES, es_PE, es_MX), ensuring a professional experience for international organizations.
Why Choose Ganemo?
----------------
Ganemo is the world's leading Odoo App developer and a multi-award-winning Gold Partner. For over 5 years, we have been recognized as the #1 seller of high-quality apps on the Odoo App Store. Trusted as the "Best Partner" in USA, Mexico, Chile, Spain, Colombia, Ecuador, and Peru, we deliver robust, secure, and localization-compliant solutions for global businesses.
Get a Quote & Resolve Commercial Doubts
Join thousands of satisfied clients on Odoo. Contact our sales team directly.
Official WhatsApp
Fastest response time.
LINK
+1 (828) 672-6150
Book a Demo
Let's explore your needs.
LINK
Schedule Meeting
Need More? We Do It All
Professional Odoo Services
ERP Implementation
Transform your business with a full Odoo implementation. We analyze, configure, and train your team to maximize productivity. From Accounting to Inventory, we handle the complexity so you can focus on growth.
Module Dev & Migration
Need a custom feature? Or stuck on an older version? We develop high-performance custom modules and migrate your existing code to Odoo 18 with zero data loss. Expert developers at your service.
QA / User Testing Scenarios
Enterprise Validation Plan
Scenario 1: Grant Access via Sale Order
- Create a Sale Order with the GitHub Connector product line and confirm it.
- Click the GitHub Access Smart Button on the order.
- Create a new access record, selecting the GitHub partner with a valid github_name.
- Add the target repository in the Repositories tab and click Sync.
- Result: Status must change to Active. Verify the user appears as a collaborator in GitHub.
Scenario 2: Manual Revoke
- Open an existing access record with status Active.
- Click Revoke on a specific repository row.
- Result: Status of that row changes to Revoked. Verify the user is no longer a collaborator in GitHub.
- Repeat using Revoke All on the parent record to revoke all repos at once.
Scenario 3: Orphan Detection (Weekly Cron)
- Manually add a GitHub user as a collaborator to a repository without creating an Odoo access record.
- Trigger the weekly cron GitHub Access — Check Discrepancies manually via Technical > Scheduled Actions.
- Result: An orphan github.sales.access record is created with status Orphan ⚠️.
- An activity alert must appear on the admin's dashboard.
Scenario 4: Monthly Sync Cron
- Ensure at least one access record exists with status Active.
- Trigger the monthly cron GitHub Access — Sync Active Accesses manually.
- Result: Sync re-invites all active collaborators. The Last Sync date updates on each repository row.
- No status changes should occur for already-active collaborators.
Scenario 5: Sync Error Handling & Activity
- Set up an access record with an invalid GitHub username (e.g., "nonexistentuser12345").
- Click Sync on the repository row.
- Result: Status changes to Error. An Odoo activity is created on the parent record with the error reason.
- Verify the Sync Result field shows the GitHub API error message.
FAQ & Troubleshooting
Common Resolutions
Sync says "Error" but the user exists on GitHub?
Reason: The GitHub API token may have insufficient permissions (requires admin:org or write:org scope for collaborator management).
Fix: Re-generate the GitHub token with the correct scopes and update the token on the GitHub Repository configuration in Odoo.
Status stays "Draft" after clicking Sync?
Reason: The parent access record has no GitHub Login filled in.
Fix: Set the GitHub User (Partner) field on the parent record, or manually enter the GitHub username in the GitHub Login field, then retry.
Why does the cron show 0 repos synced?
Reason: The cron filters by order_state = 'sale'. If the sale order is in another state (e.g., draft or locked), the repos are excluded.
Fix: Confirm the sale order is in Sale Order state, then re-run the cron.
The Smart Button doesn't appear on the sale order?
Reason: The order has no line with a product marked as GitHub Connector.
Fix: Open the product and enable the Is GitHub Connector checkbox. Then refresh the sale order.
Commercial & Sales
For inquiries about licenses, demos, or partnerships.
Official WhatsApp
Fastest response time.
LINK
+1 (828) 672-6150
Book a Demo
Let's explore your needs.
LINK
Technical Support
Existing customers regarding module functionality.
Help Desk
Exclusive channel for technical assistance and bug reports.
help@ganemo.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module