GithubHelp home page GithubHelp logo

sjpatel21 / maintainer-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oca/maintainer-tools

0.0 2.0 0.0 406 KB

Odoo Maintainers Tools for OCA members which evaluate and maintain repositories.

Home Page: http://community.odoo.com

License: GNU Affero General Public License v3.0

Python 72.74% HTML 25.24% CSS 0.83% JavaScript 1.19%

maintainer-tools's Introduction

Build Status Coverage Status

OCA Maintainers Tools

Installation

$ git clone [email protected]:OCA/maintainers-tools.git
$ cd maintainers-tools
$ virtualenv env
$ . env/bin/activate
$ python setup.py install

If you want to use the oca-copy-branches command, you also have to install: https://github.com/felipec/git-remote-bzr. git-remote-bzr must be in the $PATH.

Usage

Get a token from Github, you may have to delete the existing one from Account settings -> Applications -> Personnal Access Token

$ oca-github-login USERNAME

Copy the users from the teams configured on community.odoo.com to the GitHub teams

Goal: members of the teams should never be added directly on GitHub. They should be added on https://community.odoo.com. This script will sync all the teams from odoo to GitHub.

Prerequisites:

  • Your odoo user must have read accesses to the projects and users.
  • The partners on odoo must have their GitHub login set otherwise they won't be added in the GitHub teams.
  • Your GitHub user must have owners rights on the OCA organization to be able to add or remove members.
  • The odoo project must have the same name than the GitHub teams.

Run the script in "dry-run" mode:

$ oca-copy-maintainers --dry-run

Apply the changes on GitHub:

$ oca-copy-maintainers

The first time it runs, it will ask you for your odoo's username and password. You may store them using the --store option, but be warned that the password is stored in clear text.

Migrate the Launchpad branches to GitHub

The mapping of the branches is in tools/branches.yaml. When running:

$ oca-copy-branches PATH

all the Launchpad branches will be fetched (as git repositories with git-remote-bzr in PATH). The default mode of execution is a dry run mode, it will not push the branches to GitHub. If you want to push the branches to GitHub, run:

$ oca-copy-branches PATH --push

To copy the branches of a particular project, put the name of the project (the GitHub's one):

$ oca-copy-branches PATH --projects OCA/magento-connector

The same tool can also be used to move other branches to GitHub, see https://github.com/OCA/maintainers-tools/wiki/How-to-move-a-Merge-Proposal-to-GitHub

Set labels on OCA repository on GitHub

Set standardized labels to ease the issue workflow on all repositories with same colors This tools will also warn you what are the specific labels on some repository

$ oca-set-repo-labels

Auto fix pep8 guidelines

To auto fix pep8 guidelines of your code you can run:

$ oca-autopep8 -ri PATH

This script overwrite with monkey patch the original script of autopep8 to support custom code refactoring.

  • List of errors added:

    • CW0001 Class name with snake_case style found, should use CamelCase.
    • CW0002 Delete vim comment.

More info of original autopep8 here

You can rename snake_case to CamelCase with next command: $ oca-autopep8 -ri --select=CW0001 PATH

You can delete vim comment $ oca-autopep8 -ri --select=CW0002,W391 PATH

Clone all OCA repositories

The script oca-clone-everything can be used to clone all the OCA projects: create a fresh directory, use oca-github-login (or copy oca.cfg from a place where you've already logged in) and run oca-clone-everything.

The script will create a clone for all the OCA projects registered on github. For projects already cloned, it run git fetch --all to get the lastest versions.

If you pass the --organization-remotes <comma-separated-list> option, the script will also add remotes for the listed accounts, and run git fetch to get the source code from these forks. For instance:

$ oca-clone-everything --organization-remotes yourlogin,otherlogin

will create two remotes, in addition to the default origin, called yourlogin and otherlogin, respectively referencing [email protected]:yourlogin/projectname and [email protected]:otherlogin/projectname and fetch these remotes, for all the OCA projects. It does not matter whether the forks exist on github or not, and you can create them later.

Developers

As a developer, you want to launch the scripts without installing the egg.

$ git clone [email protected]:OCA/maintainers-tools.git
$ cd maintainers-tools
$ virtualenv env
$ . env/bin/activate
$ pip install -e .

Get a token from Github

$ python -m tools.github_login USERNAME

Run a script

$ python -m tools.copy_maintainers

You can use the GITHUB_TOKEN environment variable to specify the token

$ GITHUB_TOKEN=xxx python -m tools.copy_maintainers

maintainer-tools's People

Contributors

guewen avatar pedrobaeza avatar gurneyalex avatar yvaucher avatar moylop260 avatar sbidoul avatar dreispt avatar hbrunn avatar bwrsandman avatar jgrandguillaume avatar lepistone avatar nhomar avatar elbati avatar nbessi avatar yajo avatar lmignon avatar tafaru avatar elicoidal avatar bealdav avatar ajite avatar adrienpeiffer avatar antespi avatar ehdem avatar learts avatar legalsylvain avatar chafique-delli avatar

Watchers

James Cloos avatar Sunny Patel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.