|
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
- <title>Github Connector</title>
- <style type="text/css">
-
- /*
- :Author: David Goodger (goodger@python.org)
- :Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
- :Copyright: This stylesheet has been placed in the public domain.
-
- Default cascading style sheet for the HTML output of Docutils.
-
- See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
- customize this style sheet.
- */
-
- /* used to remove borders from tables and images */
- .borderless, table.borderless td, table.borderless th {
- border: 0 }
-
- table.borderless td, table.borderless th {
- /* Override padding for "table.docutils td" with "! important".
- The right padding separates the table cells. */
- padding: 0 0.5em 0 0 ! important }
-
- .first {
- /* Override more specific margin styles with "! important". */
- margin-top: 0 ! important }
-
- .last, .with-subtitle {
- margin-bottom: 0 ! important }
-
- .hidden {
- display: none }
-
- .subscript {
- vertical-align: sub;
- font-size: smaller }
-
- .superscript {
- vertical-align: super;
- font-size: smaller }
-
- a.toc-backref {
- text-decoration: none ;
- color: black }
-
- blockquote.epigraph {
- margin: 2em 5em ; }
-
- dl.docutils dd {
- margin-bottom: 0.5em }
-
- object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
- overflow: hidden;
- }
-
- /* Uncomment (and remove this text!) to get bold-faced definition list terms
- dl.docutils dt {
- font-weight: bold }
- */
-
- div.abstract {
- margin: 2em 5em }
-
- div.abstract p.topic-title {
- font-weight: bold ;
- text-align: center }
-
- div.admonition, div.attention, div.caution, div.danger, div.error,
- div.hint, div.important, div.note, div.tip, div.warning {
- margin: 2em ;
- border: medium outset ;
- padding: 1em }
-
- div.admonition p.admonition-title, div.hint p.admonition-title,
- div.important p.admonition-title, div.note p.admonition-title,
- div.tip p.admonition-title {
- font-weight: bold ;
- font-family: sans-serif }
-
- div.attention p.admonition-title, div.caution p.admonition-title,
- div.danger p.admonition-title, div.error p.admonition-title,
- div.warning p.admonition-title, .code .error {
- color: red ;
- font-weight: bold ;
- font-family: sans-serif }
-
- /* Uncomment (and remove this text!) to get reduced vertical space in
- compound paragraphs.
- div.compound .compound-first, div.compound .compound-middle {
- margin-bottom: 0.5em }
-
- div.compound .compound-last, div.compound .compound-middle {
- margin-top: 0.5em }
- */
-
- div.dedication {
- margin: 2em 5em ;
- text-align: center ;
- font-style: italic }
-
- div.dedication p.topic-title {
- font-weight: bold ;
- font-style: normal }
-
- div.figure {
- margin-left: 2em ;
- margin-right: 2em }
-
- div.footer, div.header {
- clear: both;
- font-size: smaller }
-
- div.line-block {
- display: block ;
- margin-top: 1em ;
- margin-bottom: 1em }
-
- div.line-block div.line-block {
- margin-top: 0 ;
- margin-bottom: 0 ;
- margin-left: 1.5em }
-
- div.sidebar {
- margin: 0 0 0.5em 1em ;
- border: medium outset ;
- padding: 1em ;
- background-color: #ffffee ;
- width: 40% ;
- float: right ;
- clear: right }
-
- div.sidebar p.rubric {
- font-family: sans-serif ;
- font-size: medium }
-
- div.system-messages {
- margin: 5em }
-
- div.system-messages h1 {
- color: red }
-
- div.system-message {
- border: medium outset ;
- padding: 1em }
-
- div.system-message p.system-message-title {
- color: red ;
- font-weight: bold }
-
- div.topic {
- margin: 2em }
-
- h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
- h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
- margin-top: 0.4em }
-
- h1.title {
- text-align: center }
-
- h2.subtitle {
- text-align: center }
-
- hr.docutils {
- width: 75% }
-
- img.align-left, .figure.align-left, object.align-left, table.align-left {
- clear: left ;
- float: left ;
- margin-right: 1em }
-
- img.align-right, .figure.align-right, object.align-right, table.align-right {
- clear: right ;
- float: right ;
- margin-left: 1em }
-
- img.align-center, .figure.align-center, object.align-center {
- display: block;
- margin-left: auto;
- margin-right: auto;
- }
-
- table.align-center {
- margin-left: auto;
- margin-right: auto;
- }
-
- .align-left {
- text-align: left }
-
- .align-center {
- clear: both ;
- text-align: center }
-
- .align-right {
- text-align: right }
-
- /* reset inner alignment in figures */
- div.align-right {
- text-align: inherit }
-
- /* div.align-center * { */
- /* text-align: left } */
-
- .align-top {
- vertical-align: top }
-
- .align-middle {
- vertical-align: middle }
-
- .align-bottom {
- vertical-align: bottom }
-
- ol.simple, ul.simple {
- margin-bottom: 1em }
-
- ol.arabic {
- list-style: decimal }
-
- ol.loweralpha {
- list-style: lower-alpha }
-
- ol.upperalpha {
- list-style: upper-alpha }
-
- ol.lowerroman {
- list-style: lower-roman }
-
- ol.upperroman {
- list-style: upper-roman }
-
- p.attribution {
- text-align: right ;
- margin-left: 50% }
-
- p.caption {
- font-style: italic }
-
- p.credits {
- font-style: italic ;
- font-size: smaller }
-
- p.label {
- white-space: nowrap }
-
- p.rubric {
- font-weight: bold ;
- font-size: larger ;
- color: maroon ;
- text-align: center }
-
- p.sidebar-title {
- font-family: sans-serif ;
- font-weight: bold ;
- font-size: larger }
-
- p.sidebar-subtitle {
- font-family: sans-serif ;
- font-weight: bold }
-
- p.topic-title {
- font-weight: bold }
-
- pre.address {
- margin-bottom: 0 ;
- margin-top: 0 ;
- font: inherit }
-
- pre.literal-block, pre.doctest-block, pre.math, pre.code {
- margin-left: 2em ;
- margin-right: 2em }
-
- pre.code .ln { color: grey; } /* line numbers */
- pre.code, code { background-color: #eeeeee }
- pre.code .comment, code .comment { color: #5C6576 }
- pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
- pre.code .literal.string, code .literal.string { color: #0C5404 }
- pre.code .name.builtin, code .name.builtin { color: #352B84 }
- pre.code .deleted, code .deleted { background-color: #DEB0A1}
- pre.code .inserted, code .inserted { background-color: #A3D289}
-
- span.classifier {
- font-family: sans-serif ;
- font-style: oblique }
-
- span.classifier-delimiter {
- font-family: sans-serif ;
- font-weight: bold }
-
- span.interpreted {
- font-family: sans-serif }
-
- span.option {
- white-space: nowrap }
-
- span.pre {
- white-space: pre }
-
- span.problematic {
- color: red }
-
- span.section-subtitle {
- /* font-size relative to parent (h1..h6 element) */
- font-size: 80% }
-
- table.citation {
- border-left: solid 1px gray;
- margin-left: 1px }
-
- table.docinfo {
- margin: 2em 4em }
-
- table.docutils {
- margin-top: 0.5em ;
- margin-bottom: 0.5em }
-
- table.footnote {
- border-left: solid 1px black;
- margin-left: 1px }
-
- table.docutils td, table.docutils th,
- table.docinfo td, table.docinfo th {
- padding-left: 0.5em ;
- padding-right: 0.5em ;
- vertical-align: top }
-
- table.docutils th.field-name, table.docinfo th.docinfo-name {
- font-weight: bold ;
- text-align: left ;
- white-space: nowrap ;
- padding-left: 0 }
-
- /* "booktabs" style (no vertical lines) */
- table.docutils.booktabs {
- border: 0px;
- border-top: 2px solid;
- border-bottom: 2px solid;
- border-collapse: collapse;
- }
- table.docutils.booktabs * {
- border: 0px;
- }
- table.docutils.booktabs th {
- border-bottom: thin solid;
- text-align: left;
- }
-
- h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
- h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
- font-size: 100% }
-
- ul.auto-toc {
- list-style-type: none }
-
- </style>
- </head>
- <body>
- <div class="document" id="github-connector">
- <h1 class="title">Github Connector</h1>
-
- <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! This file is generated by oca-gen-addon-readme !!
- !! changes will be overwritten. !!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
- <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/interface-github/tree/13.0/github_connector"><img alt="OCA/interface-github" src="https://img.shields.io/badge/github-OCA%2Finterface--github-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/interface-github-13-0/interface-github-13-0-github_connector"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/229/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
- <p>This module allows you to:</p>
- <ul class="simple">
- <li>Fetch into Odoo social information from Github (Organizations, Teams, Users)</li>
- <li>Fetch into Odoo Code structure information from Github (Repositories,
- Branches)</li>
- <li>Download source code from Github</li>
- <li>Analyze repository code from rules previously created</li>
- </ul>
- <p><strong>Table of contents</strong></p>
- <div class="contents local topic" id="contents">
- <ul class="simple">
- <li><a class="reference internal" href="#installation" id="id1">Installation</a></li>
- <li><a class="reference internal" href="#configuration" id="id2">Configuration</a><ul>
- <li><a class="reference internal" href="#technical-information" id="id3">Technical Information</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#usage" id="id4">Usage</a><ul>
- <li><a class="reference internal" href="#initial-upload-from-github" id="id5">Initial upload from Github</a></li>
- <li><a class="reference internal" href="#select-branches-to-download" id="id6">Select branches to download</a></li>
- <li><a class="reference internal" href="#team-members-synchronization" id="id7">Team / members synchronization</a></li>
- <li><a class="reference internal" href="#repositories-synchronization" id="id8">Repositories synchronization</a></li>
- <li><a class="reference internal" href="#fetching-the-source-code" id="id9">Fetching the source code</a></li>
- <li><a class="reference internal" href="#analysis-source-code" id="id10">Analysis source code</a></li>
- <li><a class="reference internal" href="#data-creation-in-github" id="id11">Data creation in Github</a></li>
- <li><a class="reference internal" href="#note" id="id12">Note</a></li>
- <li><a class="reference internal" href="#reporting" id="id13">Reporting</a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#known-issues-roadmap" id="id14">Known issues / Roadmap</a></li>
- <li><a class="reference internal" href="#bug-tracker" id="id15">Bug Tracker</a></li>
- <li><a class="reference internal" href="#credits" id="id16">Credits</a><ul>
- <li><a class="reference internal" href="#authors" id="id17">Authors</a></li>
- <li><a class="reference internal" href="#contributors" id="id18">Contributors</a></li>
- <li><a class="reference internal" href="#maintainers" id="id19">Maintainers</a></li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="section" id="installation">
- <h1><a class="toc-backref" href="#id1">Installation</a></h1>
- <p>To install this addon, you need to install some python dependencies</p>
- <pre class="code bash literal-block">
- <span class="sb">``</span>sudo pip install PyGitHub<span class="sb">``</span>
- <span class="sb">``</span>sudo pip install pygount<span class="sb">``</span>
- <span class="sb">``</span>sudo pip install pathspec<span class="sb">``</span>
- </pre>
- <p>Analysis source code is generated by <a class="reference external" href="https://github.com/roskakori/pygount">https://github.com/roskakori/pygount</a></p>
- </div>
- <div class="section" id="configuration">
- <h1><a class="toc-backref" href="#id2">Configuration</a></h1>
- <p>Once installed, you have to:</p>
- <ol class="arabic simple">
- <li>Open your odoo.conf file and add extra settings to mention Github
- credentials, and the local path where the source code will be downloaded:<ul>
- <li><tt class="docutils literal">source_code_local_path = /workspace/source_code/</tt></li>
- </ul>
- </li>
- </ol>
- <p>Note: you can define the route as environment variable using the key
- SOURCE_CODE_LOCAL_PATH</p>
- <p>Note: make sure that Odoo process has read / write access on that folder</p>
- <blockquote>
- <ul class="simple">
- <li><tt class="docutils literal">github_token = your_github_access_token</tt></li>
- </ul>
- </blockquote>
- <p>or</p>
- <blockquote>
- <ul class="simple">
- <li><tt class="docutils literal">github_login = your_github_login</tt></li>
- <li><tt class="docutils literal">github_password = your_github_password</tt></li>
- </ul>
- </blockquote>
- <p>Note: if token and login/password are provided, the token will be used.
- The login/password auth will be deprecated by GitHub in the future.</p>
- <ol class="arabic">
- <li><p class="first">Go to ‘Settings’ / ‘Technical’ / ‘Parameters’ / ‘System Parameters’
- and define the following values:</p>
- <ol class="arabic simple">
- <li><tt class="docutils literal">github.max_try</tt>: number of call to the API before an error
- is raised. The more unstable/slow your connection, the higher should be
- this value</li>
- <li><tt class="docutils literal">git.partial_commit_during_analysis</tt>: Set to <tt class="docutils literal">True</tt> if you want to
- commit the result of the analysis in the database after each repository
- analysis. We recommend to set to <tt class="docutils literal">True</tt> when you perform the initial
- download (potentially with a lot of repositories) in order to reduce the
- size of the transaction</li>
- </ol>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_settings.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_settings.png" />
- </li>
- <li><p class="first">Go to your(s) user(s) form to add them in the new ‘Connector Github Manager’
- groups. The members of this group will have the possibility to run Github
- synchronization.</p>
- </li>
- </ol>
- <div class="section" id="technical-information">
- <h2><a class="toc-backref" href="#id3">Technical Information</a></h2>
- <p>This module provides 4 crons that you can enable:</p>
- <ul class="simple">
- <li>Synchronize All Organizations and Teams (<tt class="docutils literal">cron_update_organization</tt>)</li>
- <li>Synchronize Branches List for All repositories (<tt class="docutils literal">cron_update_branch_list</tt>)</li>
- <li>Download Source Code for All Github Branches (<tt class="docutils literal">cron_download_code</tt>)</li>
- <li>Analyze Source Code for All Github Branches (<tt class="docutils literal">cron_analyze_code</tt>)</li>
- </ul>
- </div>
- </div>
- <div class="section" id="usage">
- <h1><a class="toc-backref" href="#id4">Usage</a></h1>
- <div class="section" id="initial-upload-from-github">
- <h2><a class="toc-backref" href="#id5">Initial upload from Github</a></h2>
- <p>To fetch information from Github, you have to:</p>
- <ol class="arabic">
- <li><p class="first">go to ‘Github’ / ‘Settings’ / ‘Sync Object’</p>
- </li>
- <li><p class="first">Select the object type you want to synchronize and its Gthub name</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/sync_organization.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/sync_organization.png" />
- </li>
- <li><p class="first">Once done for your organization(s), go to ‘Github’ / ‘Github Commnunity’ /
- ‘Organizations’</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_kanban.png" />
- </li>
- <li><p class="first">Optionally, once organization is created, you can create series for your
- projects. Go to ‘Github’ / ‘Organizations’ / click on your organization /
- ‘Organization Series’ Tabs</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_series.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_series.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="select-branches-to-download">
- <h2><a class="toc-backref" href="#id6">Select branches to download</a></h2>
- <p>This setting will prevent to download undesired branches, downloading only
- main branches (releases):</p>
- <ol class="arabic">
- <li><p class="first">In the ‘Settings’ tab, set repositories you don’t want to download
- (or repositories you want to download). If ‘Specific repositories’ is set,
- ‘Ignored Repositories’ value is ignored.</p>
- </li>
- <li><p class="first">In the ‘Settings’ tab, set the URL of the ‘External Services’ you use
- for Continuous Integration and Coverage.</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_external_services.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_external_services.png" />
- </li>
- <li><p class="first">Once done, click on buttons ‘Syncs’, to synchronize repositories, teams and
- members. (This process can take a while depending of your size)</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_sync_buttons.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_organization_sync_buttons.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="team-members-synchronization">
- <h2><a class="toc-backref" href="#id7">Team / members synchronization</a></h2>
- <p>You can synchronize members teams:</p>
- <ol class="arabic">
- <li><p class="first">Go to ‘Teams’ / tree view / ‘Actions’ / ‘Update from Github’.</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_kanban.png" />
- </li>
- <li><p class="first">In each team, you can see the members list and the role of the members</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_partner_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_partner_kanban.png" />
- </li>
- <li><p class="first">In each team, you can see the repositories list but not the permissions of the
- team. (See ‘Known Issues’ Section)</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_repository_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_team_repository_kanban.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="repositories-synchronization">
- <h2><a class="toc-backref" href="#id8">Repositories synchronization</a></h2>
- <p>You can synchronize the branches of your repositories:</p>
- <ol class="arabic">
- <li><p class="first">Go to ‘Repositories’ /
- tree view / ‘Actions’ / ‘Update from Github’</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_kanban.png" />
- </li>
- <li><p class="first">In each repository, you can see the main branches list and the size of code
- source.</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_kanban.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_kanban.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="fetching-the-source-code">
- <h2><a class="toc-backref" href="#id9">Fetching the source code</a></h2>
- <p>Finally, you can download locally the source code of all your branches:</p>
- <ol class="arabic">
- <li><p class="first">Go to ‘Repository Branches’ / tree view / ‘Actions’ / ‘Download and Analyse Source Code’.</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_download_analyze.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_download_analyze.png" />
- </li>
- <li><p class="first">In the tree view you can update manually source code or refresh analysis.</p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_list.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_list.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="analysis-source-code">
- <h2><a class="toc-backref" href="#id10">Analysis source code</a></h2>
- <p>It’s possible to create custom analysis rules that relate to a GitHub organization, GitHub repository and/or GitHub repository branch to analyze code.</p>
- <ol class="arabic simple">
- <li>Go to ‘Settings’ / ‘Analysis rule groups’ and create records that allow to organize the rules</li>
- <li>Go to ‘Settings’ / ‘Analysis rules’ and create rules, for example:</li>
- </ol>
- <blockquote>
- <ol class="arabic simple">
- <li>Name: All code, Group: General, Paths: <tt class="docutils literal">*</tt></li>
- <li>Name: Python code, Group: General, Paths: <tt class="docutils literal">*.py</tt></li>
- <li>Name: Xml code, Group: General, Paths: <tt class="docutils literal">*.xml</tt></li>
- <li>Name: Repository 1, Group: Custom, Paths: /path/</li>
- </ol>
- </blockquote>
- <p>Note: Paths field in ‘Analysis rule’ allow to put multiple paths for line, path format is according to <a class="reference external" href="https://git-scm.com/docs/gitignore#_pattern_format">https://git-scm.com/docs/gitignore#_pattern_format</a></p>
- <ol class="arabic simple">
- <li>Go to <em>GitHub > GitHub Community > Organizations</em> and define Analysis rules (optional)</li>
- <li>Go to <em>GitHub > GitHub Repository > Repositories</em> and define Analysis rules (optional)</li>
- <li>Go to <em>GitHub > GitHub Repository > Repository Branches</em> and define Analysis rules (optional)</li>
- </ol>
- <p>Analysis source code is executed when ‘Update Source Code Analysis’ button in some ‘Repository Branch’, get all the Analysis rules (Repository + Organization) and analyze code and generate info about it
- Other option to Analysis source code is in cron called ‘Analyze Source Code for All Github Branches’</p>
- <p>You can see in ‘Repository Branch’ / ‘Code Analysis’ the info obtained from analysis rules.</p>
- </div>
- <div class="section" id="data-creation-in-github">
- <h2><a class="toc-backref" href="#id11">Data creation in Github</a></h2>
- <p>You have the possibility to creates two items in Github directly from Odoo</p>
- <ol class="arabic">
- <li><p class="first">Teams:</p>
- <ol class="arabic simple">
- <li>Go to ‘Settings’ / ‘Create Team in Github’.</li>
- <li>Set the information and click on Create in Github.</li>
- <li>Odoo will try to create the team. If access right and datas are correct,
- the creation will be done directly in Github</li>
- <li>Later on, a synchronization will be performed, to create the according
- team in the Odoo instance.</li>
- </ol>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_create_team.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_create_team.png" />
- </li>
- <li><p class="first">Repositories:</p>
- <ol class="arabic simple">
- <li>Go to ‘Settings’ / ‘Create Team in Github’.</li>
- <li>Set the information and click on Create in Github.</li>
- </ol>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_create_repository.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/wizard_create_repository.png" />
- </li>
- </ol>
- </div>
- <div class="section" id="note">
- <h2><a class="toc-backref" href="#id12">Note</a></h2>
- <p>Analysis in this module is basic: for the time being, it just gives branches
- size.</p>
- <p>Nevertheless, you can develop an extra Odoo Custom module to extend analysis
- function and get extra statistics, depending on your needs.</p>
- <p>In that way, you can see the module github_connector_odoo, if your repositories
- contain Odoo modules.</p>
- </div>
- <div class="section" id="reporting">
- <h2><a class="toc-backref" href="#id13">Reporting</a></h2>
- <p>This module provides several reports</p>
- <p><strong>Branches by Serie</strong></p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/reporting_branches_by_serie.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/reporting_branches_by_serie.png" />
- <p><strong>Sizes by Serie</strong></p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/reporting_sizes_by_serie.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/reporting_sizes_by_serie.png" />
- <p><strong>Repository branch analysis rule</strong></p>
- <img alt="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_rule_info_report.png" src="https://raw.githubusercontent.com/OCA/interface-github/13.0/github_connector/static/description/github_repository_branch_rule_info_report.png" />
- </div>
- </div>
- <div class="section" id="known-issues-roadmap">
- <h1><a class="toc-backref" href="#id14">Known issues / Roadmap</a></h1>
- <ul>
- <li><p class="first">For the time being, Github API doesn’t provide some informations that are
- available by the classic UI, that includes:</p>
- <ol class="arabic simple">
- <li>team hierarchy: the field is present in the model github_team.parent_id,
- but unused.</li>
- </ol>
- </li>
- <li><p class="first">Possible improvements:</p>
- <ol class="arabic simple">
- <li>Create a new module github_connector_website, that could display
- teams / repositories / branches informations for non logged users.</li>
- <li>Analyze commits (author, quantity by series, etc…):
- this feature has been partially implemented in a V8.0 PR.</li>
- <li>Synchronize Pull Request, Issues, Comments:
- this feature has been partially implemented in a V8.0 PR.</li>
- </ol>
- </li>
- <li><p class="first">Refactor the github connector:</p>
- <p>A python library called PyGitHub is available. It could be interesting
- to use it, instead of using custom code. However, this lib doesn’t provide
- good access to child object, generating for the time being, unnecessary
- API calls. For example, updating a repository should call before a call to
- the parent organization (The current module is so faster).</p>
- </li>
- </ul>
- </div>
- <div class="section" id="bug-tracker">
- <h1><a class="toc-backref" href="#id15">Bug Tracker</a></h1>
- <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/interface-github/issues">GitHub Issues</a>.
- In case of trouble, please check there if your issue has already been reported.
- If you spotted it first, help us smashing it by providing a detailed and welcomed
- <a class="reference external" href="https://github.com/OCA/interface-github/issues/new?body=module:%20github_connector%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
- <p>Do not contact contributors directly about support or help with technical issues.</p>
- </div>
- <div class="section" id="credits">
- <h1><a class="toc-backref" href="#id16">Credits</a></h1>
- <div class="section" id="authors">
- <h2><a class="toc-backref" href="#id17">Authors</a></h2>
- <ul class="simple">
- <li>GRAP</li>
- <li>Akretion</li>
- <li>Tecnativa</li>
- </ul>
- </div>
- <div class="section" id="contributors">
- <h2><a class="toc-backref" href="#id18">Contributors</a></h2>
- <ul class="simple">
- <li>Sylvain LE GAL (<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>)</li>
- <li>Sébastien BEAU (<a class="reference external" href="mailto:sebastien.beau@akretion.com">sebastien.beau@akretion.com</a>)</li>
- <li>Benoît GUILLOT (<a class="reference external" href="mailto:benoit.guillot@akretion.com">benoit.guillot@akretion.com</a>)</li>
- <li>Enrique Martín (<a class="reference external" href="mailto:enriquemartin@digital5.es">enriquemartin@digital5.es</a>)</li>
- <li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:”,<ul>
- <li>Pedro M. Baeza</li>
- <li>Vicent Cubells</li>
- <li>Alexandre Díaz</li>
- <li>Ernesto Tejeda</li>
- <li>Carlos Roca</li>
- <li>Víctor Martínez</li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="section" id="maintainers">
- <h2><a class="toc-backref" href="#id19">Maintainers</a></h2>
- <p>This module is maintained by the OCA.</p>
- <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
- <p>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.</p>
- <p>This module is part of the <a class="reference external" href="https://github.com/OCA/interface-github/tree/13.0/github_connector">OCA/interface-github</a> project on GitHub.</p>
- <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
- </div>
- </div>
- </div>
- </body>
- </html>
|