{
"info": {
"author": "Alexis C\u00f4t\u00e9",
"author_email": "alexiscote19@hotmail.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6"
],
"description": "# orchester\n\n[](https://badge.fury.io/py/orchester)\n\nThis is a python set of tools to easily manage membership of users to your preferred cloud services.\n\n- [orchester](#orchester)\n - [Getting started](#getting-started)\n - [CLI](#cli)\n - [Connectors](#connectors)\n - [Trello](#trello)\n - [Github](#github)\n - [Slack](#slack)\n - [Google Drive](#google-drive)\n - [API](#api)\n - [Contributing](#contributing)\n\n## Getting started\n\nInstall the package with `pip install orchester`\n\nIf you want on using the command line interface, you must define some configurations.\n\n## Configuration\n\nConfiguration is done through a `.orchester.json` configuration file. \nYou can see a documented template here: [.orchester-doc.json](.orchester-doc.json)\nThe values labeled by `[CLI]` are only required for the CLI.\n\n>**Note**: An empty template is available here: [.orchester.json](.orchester-empty.json)\n\n\nThe application will attempt to load from this following order:\n\n- A specific path defined in the **ORCHESTER_CONFIG_PATH** environment variable.\n- In the current working directory\n- In the user folder (home)\n\n## CLI\n\nOrchester is distributed with a command line tool. Once installed, you can call it with `orchest --help`\n\nThe following commands are available:\n\n- `orchest -c CONNECTOR_TYPE check IDENTIFIER`: Check if the user is registered to the organization\n- `orchest -c CONNECTOR_TYPE add IDENTIFIER` Add a user to the organization\n- `orchest -c CONNECTOR_TYPE rm IDENTIFIER`: Remove a user from the organization\n- `orchest generate CONNECTOR_TYPE`: Generates the OAuth credentials for connector.\n\nIf you want to omit the `CONNECTOR_TYPE` for each command, you can set a default connector in your configuration file:\n\n> \"default_connector\": \"trello\"\n\nThe connector_type must be **CONNECTOR** name of a valid connector. The connectors are described in the next section.\n\n\n## Connectors\n\n### Trello\n\n**CONNECTOR**: trello\n\n**IDENTIFIER**: Use the trello username\n\n---\n\n1. Get your API token and secret from https://trello.com/app-key (Look for the Api Key and OAuth secret)\n2. Add the Api Key and OAuth secret in the `.orchester.json` configuration file in **api_key** and **api_secret**.\n3. Run `orchest generate trello` script to get the credentials\n4. Set the OAuth token and OAuth secret in the configuration file in **token** and **token_secret**\n\n---\n\n### Github\n\n**CONNECTOR**: github\n\n**IDENTIFIER**: Use the github username\n\n---\n\nTo use the Github service, you need an Personal Token.\n\nGo on Github under `Settings > Developer settings > Personal access tokens`\n\nThen, create a new token and save it in your configuration file at **token**.\n\n\n---\n\n### Slack\n\n**CONNECTOR**: slack\n\n**IDENTIFIER**: Use the slack email\n\n---\n\nTo get started with slack, you first need to get a legacy token and a OAuth token.\n\n**Legacy token**\n\nSimply go to the following url and issue a new legacy token: https://api.slack.com/custom-integrations/legacy-tokens\n\nYou can then add the legacy token in **legacy_token**.\n\n>**Note**: You'll need to be connected to issue a token.\n\n**OAuth token**\n\nBefore you can actually generate an OAuth token, you'll need to have a Slack application. \n\n> **How to create an app?**: Go to https://api.slack.com/apps and click on *Create New App*
\nYou must add the following permission scopes: **users:read** and **users:read.email**
\nYou will also need to set the following Redirect URI: http://localhost:8888/finish_auth\n\nYou can then store the client id and client secret in **client_id** and **client_secret**\n\nYou are now all setup to generate the final OAuth token.\n\n1. Run `orchest generate slack`\n2. Go to: `http://localhost:8888/begin_auth`\n3. Click on \"Add to slack\"\n4. Click Authorize\n5. It should show a OAuth token. Save that in the configuration file at **token** \n\n\n>**Warnings**: Free Slack users can't use the api to remove a user.\n\n--- \n\n### Google Drive\n\n**IDENTIFIER**: Use the google email\n\n**CONNECTOR**: g_drive\n\n---\n\nBefore you begin, you'll need a `google_drive_credentials.json` file at the root of this folder.\n\nYou can get it by creating credentials in your Google Console API\n\n**Tutorial**: Tutorials coming from: https://developers.google.com/drive/api/v3/quickstart/python\n\nOnce you have the `credentials.json` file, you need to define the **credential_path** and **token_path**.\n\nAfter that, you can run `orchest generate g_drive` to create the `google_drive_token.json`.\n\n## API\n\nThe API is pretty straight forward. Each connectors inherit from `orchester.connectors.AbstractBaseConnector`\n\nIf you want to use all the connectors at one time, you can use the `orchester.ConnectorManager`\n\nThe manager instantiate all the connectors and let you easily interact with the connector one at a time.\n\n\nHere's an example to use the github connector:\n```python\nfrom orchester.connectors import GithubConnector, RequestFailedError\n\nconnector = GithubConnector(access_token=\"my token...\",organization_id='myOrg')\n\ntry:\n user_exist = connector.is_registered_to_group('popojargo')\n print('User is registered to myOrg')\nexcept RequestFailedError:\n print('The request failed.')\n\n\ntry:\n connector.remove_from_group('popojargo')\n print('User removed to myOrg')\n\nexcept RequestFailedError:\n print('The request failed.')\n\n\ntry:\n user_exist = connector.add_to_group('popojargo')\n print('User added to myOrg')\n\nexcept RequestFailedError:\n print('The request failed.')\n```\n\n## Contributing\n\nFor developer documentation, see [README-DEV.md](README-DEV.md)\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/popojargo/orchester",
"keywords": "orchester auth trello github drive google groups slack manage cli",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "orchester",
"package_url": "https://pypi.org/project/orchester/",
"platform": "",
"project_url": "https://pypi.org/project/orchester/",
"project_urls": {
"Homepage": "https://github.com/popojargo/orchester"
},
"release_url": "https://pypi.org/project/orchester/0.0.4/",
"requires_dist": [
"Flask (<2,>=1.0.2)",
"google-api-python-client (<2,>=1.7.7)",
"oauth2client (<5,>=4.1.3)",
"py-trello (<1,>=0.14.0)",
"PyGithub (<2,>=1.43.4)",
"slackclient (<2,>=1.3.0)"
],
"requires_python": "~=3.5",
"summary": "Orchester allows you to easily add/remove use to your favorite platforms.",
"version": "0.0.4"
},
"last_serial": 5810999,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "732053c06ad8ffed82791bb6fdb064af",
"sha256": "a3aff989639351dad1303c2091839ec94af58db607d90278b753db407aad25b7"
},
"downloads": -1,
"filename": "orchester-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "732053c06ad8ffed82791bb6fdb064af",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.5",
"size": 13698,
"upload_time": "2019-02-07T19:23:26",
"url": "https://files.pythonhosted.org/packages/e2/fc/c2d9f5aaf84566fd9495efc998c52852afd59f485109cfa7cb6abec157af/orchester-0.0.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9cd28d3070dbc2d63e615422b704574f",
"sha256": "bd32513e2d6345206c7fc792237b8570c7f47c6bfab84bdacbaa1ee83fac7628"
},
"downloads": -1,
"filename": "orchester-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "9cd28d3070dbc2d63e615422b704574f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.5",
"size": 8573,
"upload_time": "2019-02-07T19:23:28",
"url": "https://files.pythonhosted.org/packages/aa/5e/609afed6a528dab8ac687c290049cbd50c183c505e756c82e118b6c3d1f8/orchester-0.0.1.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "d39db94a799516c2729c7c79744c7ccc",
"sha256": "30af066c7acf3994a0fc8651ff6856217ce70e31a7ba665584349251e10d460d"
},
"downloads": -1,
"filename": "orchester-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d39db94a799516c2729c7c79744c7ccc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.5",
"size": 14281,
"upload_time": "2019-09-10T20:08:34",
"url": "https://files.pythonhosted.org/packages/03/37/11a786cdc7b8e00abef5232ec1e3bc0610ff44fa340fc0fe37d4b969a0bb/orchester-0.0.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b36bba7080f33c72b893914b2350fc42",
"sha256": "fc934fd59ff4cdbb63850175e17d9b284e9209d4cb7427d7d5833ffdc2c76956"
},
"downloads": -1,
"filename": "orchester-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "b36bba7080f33c72b893914b2350fc42",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.5",
"size": 9158,
"upload_time": "2019-09-10T20:08:39",
"url": "https://files.pythonhosted.org/packages/b0/82/714c1f3e25d4d1cdb052d1d870b87cdbb4f7558f8e80f6797591fc6a1d52/orchester-0.0.2.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "313749c40b0edcfbcef842778768a8bd",
"sha256": "e6dcd663baf39d6e65b8714c638a8d7af6c32b4d2f63cd900ebc54bb8da5c952"
},
"downloads": -1,
"filename": "orchester-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "313749c40b0edcfbcef842778768a8bd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.5",
"size": 14281,
"upload_time": "2019-09-10T20:08:37",
"url": "https://files.pythonhosted.org/packages/a8/21/fc5bf7cfab1206f4e947bc8c88f4b1db15bb8e31b986837d308f8cfb08d9/orchester-0.0.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8e09a390409e1873275c4a6cc786cd9c",
"sha256": "5cb140662e73c0b771d227fe6cbc7d5e3a821c5173839b50bc2748d7a080fde2"
},
"downloads": -1,
"filename": "orchester-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "8e09a390409e1873275c4a6cc786cd9c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.5",
"size": 9153,
"upload_time": "2019-09-10T20:08:40",
"url": "https://files.pythonhosted.org/packages/72/61/92ecf7449625e4af154aa206c7e41fd5e5ef3ec33f07a215eeea22ae592d/orchester-0.0.4.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "313749c40b0edcfbcef842778768a8bd",
"sha256": "e6dcd663baf39d6e65b8714c638a8d7af6c32b4d2f63cd900ebc54bb8da5c952"
},
"downloads": -1,
"filename": "orchester-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "313749c40b0edcfbcef842778768a8bd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.5",
"size": 14281,
"upload_time": "2019-09-10T20:08:37",
"url": "https://files.pythonhosted.org/packages/a8/21/fc5bf7cfab1206f4e947bc8c88f4b1db15bb8e31b986837d308f8cfb08d9/orchester-0.0.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8e09a390409e1873275c4a6cc786cd9c",
"sha256": "5cb140662e73c0b771d227fe6cbc7d5e3a821c5173839b50bc2748d7a080fde2"
},
"downloads": -1,
"filename": "orchester-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "8e09a390409e1873275c4a6cc786cd9c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.5",
"size": 9153,
"upload_time": "2019-09-10T20:08:40",
"url": "https://files.pythonhosted.org/packages/72/61/92ecf7449625e4af154aa206c7e41fd5e5ef3ec33f07a215eeea22ae592d/orchester-0.0.4.tar.gz"
}
]
}