Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADD] gitlab module #311

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from
Open
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
85 changes: 85 additions & 0 deletions gitlab/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
======
Gitlab
======

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:5fe540da3a23a490321ee98260fbc37dcc03fb8ceac994d75890e7b2af7753b3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github
:target: https://github.com/OCA/server-backend/tree/16.0/gitlab
:alt: OCA/server-backend
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-gitlab
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module does not provide a functionality by itself but a base model
to implement gitlab related features
Comment on lines +31 to +32
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks very generic, and quite hard to understand the perimeter of this module.
Could you mention links to extra modules that depends on this module ?

thanks !

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@legalsylvain ,the extra module is not yet added as its dependent on this module.The module is aimed at recording user activities like commits, pull requests (merge requests), opening issues etc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi maybe we could share concept and code with https://github.com/OCA/interface-github module, dont you think ?
With some refactor it looks me possible at a first sight

Copy link
Author

@ByteMeAsap ByteMeAsap Oct 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the link to the PR for the extra module that depends on this module - OCA/vertical-association#178. Actually, its not identical to the interface-github


**Table of contents**

.. contents::
:local:

Usage
=====

To use this module, you need to:

#. Go to *Settings > Technical > Gitlab Connections*.
#. Create new gitlab connections by filling in the details and then you can test the gitlab connection by clicking on "Test Connection" button.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-backend/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-backend/issues/new?body=module:%20gitlab%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Onestein

Contributors
~~~~~~~~~~~~

* `Onestein <http://www.onestein.eu>`_

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-backend <https://github.com/OCA/server-backend/tree/16.0/gitlab>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions gitlab/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
12 changes: 12 additions & 0 deletions gitlab/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "Gitlab",
"summary": "Base module for implementing gitlab related features",
"category": "Technical",
"version": "16.0.1.0.0",
"author": "Onestein, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-backend",
"license": "AGPL-3",
"depends": ["base"],
"external_dependencies": {"python": ["python-gitlab"]},
"data": ["security/ir_model_access.xml", "views/gitlab_view.xml", "menuitems.xml"],
}
9 changes: 9 additions & 0 deletions gitlab/menuitems.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
id="gitlab_menu"
parent="base.menu_custom"
action="gitlab_action"
name="Gitlab Connections"
/>
</odoo>
1 change: 1 addition & 0 deletions gitlab/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import gitlab
48 changes: 48 additions & 0 deletions gitlab/models/gitlab.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from odoo import _, fields, models

import gitlab


class Gitlab(models.Model):
_name = "gitlab"
_description = "Gitlab Connection"

url = fields.Char(string="URL", default="https://gitlab.com")
private_token = fields.Char(string="Private / Personal Token", required=True)
debug = fields.Boolean(string="Enable Debug Mode")
per_page = fields.Integer(string="Pagination", default=100)

def name_get(self):
res = []
for record in self:
res.append((record.id, record.url))
return res

def get_server_connection(self):
self.ensure_one()
gl = gitlab.Gitlab(url=self.url, private_token=self.private_token)
if self.debug:
gl.enable_debug()

Check warning on line 25 in gitlab/models/gitlab.py

View check run for this annotation

Codecov / codecov/patch

gitlab/models/gitlab.py#L25

Added line #L25 was not covered by tests
return gl

def validate(self):
gl = self.get_server_connection()
try:
gl.auth()
title = _("Connection Test Succeeded!")
message = _("Everything seems properly set up!")
msg_type = "success"
except Exception as e:
title = _("Connection Test Failed!")
message = str(e)
msg_type = "danger"
return {
"type": "ir.actions.client",
"tag": "display_notification",
"params": {
"title": title,
"message": message,
"type": msg_type,
"sticky": False,
},
}
1 change: 1 addition & 0 deletions gitlab/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* `Onestein <http://www.onestein.eu>`_
2 changes: 2 additions & 0 deletions gitlab/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This module does not provide a functionality by itself but a base model
to implement gitlab related features
4 changes: 4 additions & 0 deletions gitlab/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
To use this module, you need to:

#. Go to *Settings > Technical > Gitlab Connections*.
#. Create new gitlab connections by filling in the details and then you can test the gitlab connection by clicking on "Test Connection" button.
12 changes: 12 additions & 0 deletions gitlab/security/ir_model_access.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="gitlab_access" model="ir.model.access">
<field name="name">gitlab_access</field>
<field name="model_id" ref="model_gitlab" />
<field name="group_id" ref="base.group_system" />
<field name="perm_read" eval="1" />
<field name="perm_create" eval="1" />
<field name="perm_write" eval="1" />
<field name="perm_unlink" eval="1" />
</record>
</odoo>
Loading
Loading