diff --git a/.gitignore b/.gitignore
index fb42e0e3..aeb25b35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@ static/.DS_Store
static/gitbook/.DS_Store
static/gitbook/assets/.DS_Store
static/gitbook/assets/pybytes/.DS_Store
+scripts/githubToken.json
diff --git a/config.toml b/config.toml
index e911c632..c21e651d 100644
--- a/config.toml
+++ b/config.toml
@@ -1187,38 +1187,31 @@ theme = "doc-theme"
weight = 20
[[menu.main]]
- name = "Connect to Pybytes: Quick Add"
+ name = "Provisioning via USB"
url = "/pybytes/connect/quick/"
identifier = "pybytes@connect@quick"
parent = "pybytes@connect"
weight = 10
[[menu.main]]
- name = "Connect to Pybytes: Flash Pybytes library manually"
- url = "/pybytes/connect/flash/"
- identifier = "pybytes@connect@flash"
- parent = "pybytes@connect"
- weight = 20
-
-[[menu.main]]
- name = "Add Sigfox device"
- url = "/pybytes/connect/sigfox/"
- identifier = "pybytes@connect@sigfox"
- parent = "pybytes@connect"
+ name = "Sigfox"
+ url = "/pybytes/sigfox/"
+ identifier = "pybytes@sigfox"
+ parent = "pybytes"
weight = 30
[[menu.main]]
name = "DevKit contract"
- url = "/pybytes/connect/sigfox/devkit/"
- identifier = "pybytes@connect@sigfox@devkit"
- parent = "pybytes@connect@sigfox"
+ url = "/pybytes/sigfox/devkit/"
+ identifier = "pybytes@sigfox@devkit"
+ parent = "pybytes@sigfox"
weight = 10
[[menu.main]]
name = "Custom contract"
- url = "/pybytes/connect/sigfox/custom/"
- identifier = "pybytes@connect@sigfox@custom"
- parent = "pybytes@connect@sigfox"
+ url = "/pybytes/sigfox/custom/"
+ identifier = "pybytes@sigfox@custom"
+ parent = "pybytes@sigfox"
weight = 20
[[menu.main]]
diff --git a/content/pybytes/_index.md b/content/pybytes/_index.md
index 5c3e9429..0af4078a 100644
--- a/content/pybytes/_index.md
+++ b/content/pybytes/_index.md
@@ -4,7 +4,7 @@ aliases:
- pybytes/introduction
---
-[](https://pybytes.pycom.io/?utm_source=docs&utm_medium=web&utm_campaign=pybytes-introduction)
+
## What is Pybytes?
diff --git a/content/pybytes/connect/_index.md b/content/pybytes/connect/_index.md
index 701b77b8..0af6761d 100644
--- a/content/pybytes/connect/_index.md
+++ b/content/pybytes/connect/_index.md
@@ -25,10 +25,5 @@ Go to the *Devices* page in Pybytes:
1. At the end of the *Add Device* wizard, Pybytes will show that your device profile was successfully created.

-## Step 2: Configure your device
-
-There are two options for connecting your device to Pybytes:
-
-1. **Recommended:** [Connect your device quickly with the help of the Firmware Updater](quick)
-
-1. [Connect your device by flashing Pybytes Library](flash) (only if you want to customize Pybytes library code).
+## Next step
+[Provision your device via USB](quick)
diff --git a/content/pybytes/connect/flash.md b/content/pybytes/connect/flash.md
deleted file mode 100644
index 3ab82a89..00000000
--- a/content/pybytes/connect/flash.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "Flash Pybytes-library (advanced)"
-aliases:
- - pybytes/connect/flash.html
- - pybytes/connect/flash.md
- - chapter/pybytes/connect/flash
----
-
-In this section, we will explain to you how to connect your device to Pybytes by flashing the Pybytes library.
-Use this, if you want to have full control over the Pybytes library on your device.
-
-{{% hint style="info" %}}
-Pybytes firmware already contains [Pybytes library](https://github.com/pycom/pycom-micropython-sigfox/tree/pybytes-master/esp32/frozen/Base). That means that you can [add your device quickly](../quick) without the need of flashing Pybytes library.
-{{% /hint %}}
-
-### Step 1: Flash stable firmware to your device with Pycom firmware updater tool
-1. Open Pycom firmware updater tool
-2. Select a stable firmware
-3. Click on continue
-
-Here's more information about [firmware updates](/gettingstarted/installation/firmwaretool).
-
-### Step 2: Download your Pybytes Library
-
-You can download _Pybytes library_ at the device's settings page:
-
-2. Navigate to your device in Pybytes;
-
-3. Click on the settings tab;
-
-4. Click on the _Download_ button at Pybytes library section;
-
-
-
-### Step 3. Flash your device with Pymakr
-
-{{% hint style="info" %}}
-In case you haven't installed Pymakr plugin, follow [these instructions](/pymakr/installation/atom).
-We recommend to install Pymakr in Atom.
-{{% /hint %}}
-
-1. Connect your device to the computer with a USB cable.
-2. Open zip archive of Pybytes library and extract a containing folder.
-3. Check your `flash/pybytes_config.json` file. It should be pre-filled with your Pybytes credentials (deviceToken, WiFi credentials, ...)
-3. Open Pybytes library folder as a project folder in Atom.
-4. Click on the Connect button in Pymakr. Pymakr should connect to your device.
-7. Upload code to your device by clicking on the _Upload_ button in Pymakr.
-
- After all the Pybytes library files are uploaded to your device, the device will restart and connect to Pybytes.
diff --git a/content/pybytes/connect/quick.md b/content/pybytes/connect/quick.md
index 064c6ffd..77d3a1b9 100644
--- a/content/pybytes/connect/quick.md
+++ b/content/pybytes/connect/quick.md
@@ -1,5 +1,5 @@
---
-title: "Connect the device to Pybytes"
+title: "Provisioning via USB"
aliases:
- pybytes/connect/quick.html
- pybytes/connect/quick.md
diff --git a/content/pybytes/connect/sigfox/README.md b/content/pybytes/connect/sigfox/README.md
deleted file mode 100644
index ec32dd4c..00000000
--- a/content/pybytes/connect/sigfox/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "Add Sigfox device"
-aliases:
- - chapter/pybytes/connect/sigfox/sigfox
----
-
-{{% hint style="danger" %}}
-Before you start you need to create Sigfox account. You need Pycom device with Sigfox to get your Sigfox account. [**Follow these instructions**](../..//gettingstarted/registration/sigfox).
-{{% /hint %}}
-
-## Create Sigfox API credentials
-
-Once you have you account setup and are logged in Sigfox backend, you need to create API credentials for Pybytes.
-
-Click on GROUP → <your\_company\_name> → API ACCESS → New
-
-
-
-In the form chose arbitrary _name_, select `LIMITED_ADMIN` and Profile and click on Ok.
-
-
-
-Copy _Login_ and _Password_ to the clipboard.
-
-
-
-In Pybytes go to Settings → Sigfox API or [follow this link](https://pybytes.pycom.io/settings/sigfox-credentials) then paste in the form.
-
-
-
-## Sigfox contract types
-
-### Sigfox DevKit contracts
-
-Read more how to use Sigfox with [devKit contract](devkit).
-
-{{% refname "devkit.md" %}}
-
-### Sigfox custom contracts
-
-Read more how to use Sigfox with [Custom contract](devkit).
-
-{{% refname "custom.md" %}}
diff --git a/content/pybytes/integrations/README.md b/content/pybytes/integrations/README.md
deleted file mode 100644
index e650d1e3..00000000
--- a/content/pybytes/integrations/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Integrations"
-aliases:
----
-
-## Integration with external services
-
-Pybytes offers a way to interact with external IoT platform or custom services, including the following:
-
-* [AWS IoT](amazon-iot.md): a managed cloud platform that lets connected devices easily and securely interact with Cloud applications and other devices
-* [Microsoft Azure](azure.md): a comprehensive collection of services and solutions designed to help you create end-to-end IoT applications on Azure
-* [Google Cloud IoT](google.md): a complete set of tools to connect, process, store, and analyse data, both at the edge and in the cloud
-* [Web Hooks](webhooks.md): this allows for user-defined HTTP callbacks to a defined remote destination. All elements of the requests (headers, query string parameters, etc) are customisable
diff --git a/content/pybytes/connect/sigfox/_index.md b/content/pybytes/sigfox/_index.md
similarity index 80%
rename from content/pybytes/connect/sigfox/_index.md
rename to content/pybytes/sigfox/_index.md
index c369b3b6..7a461024 100644
--- a/content/pybytes/connect/sigfox/_index.md
+++ b/content/pybytes/sigfox/_index.md
@@ -13,19 +13,19 @@ Once you have you account setup and are logged in Sigfox backend, you need to cr
Click on GROUP → <your\_company\_name> → API ACCESS → New
-
+
In the form chose arbitrary _name_, select `LIMITED_ADMIN` and Profile and click on Ok.
-
+
Copy _Login_ and _Password_ to the clipboard.
-
+
In Pybytes go to Settings → Sigfox API or [follow this link](https://pybytes.pycom.io/settings/sigfox-credentials) then paste in the form.
-
+
## Sigfox contract types
@@ -33,10 +33,6 @@ In Pybytes go to Settings → Sigfox API or [follow this link](https://pybytes.p
Read more how to use Sigfox with [devKit contract](devkit).
-{{% refname "devkit.md" %}}
-
### Sigfox custom contracts
Read more how to use Sigfox with [Custom contract](devkit).
-
-{{% refname "custom.md" %}}
diff --git a/content/pybytes/connect/sigfox/custom.md b/content/pybytes/sigfox/custom.md
similarity index 86%
rename from content/pybytes/connect/sigfox/custom.md
rename to content/pybytes/sigfox/custom.md
index 6fb3dd1f..87f17c26 100644
--- a/content/pybytes/connect/sigfox/custom.md
+++ b/content/pybytes/sigfox/custom.md
@@ -20,7 +20,7 @@ Go to: Settings (in sidebar) → Sigfox API → Settings
and select Sigfox device type which is associated with Sigfox custom contract.
-
+
### Add your Sigfox device to Pybytes
@@ -30,12 +30,12 @@ and select Sigfox device type which is associated with Sigfox custom contract.
2. Paste your device token to firmware updater
{{% hint style="info" %}}
-Detailed steps which are same for all devices are [**described here**](../../quick).
+Detailed steps which are same for all devices are [**described here**](/pybytes/connect/quick).
{{% /hint %}}
After your device was flashed with Pybytes firmware in automatically start adding itself to Sigfox backend.
-
+
## Troubleshooting
diff --git a/content/pybytes/connect/sigfox/devkit.md b/content/pybytes/sigfox/devkit.md
similarity index 91%
rename from content/pybytes/connect/sigfox/devkit.md
rename to content/pybytes/sigfox/devkit.md
index b4c0f539..eb8d356d 100644
--- a/content/pybytes/connect/sigfox/devkit.md
+++ b/content/pybytes/sigfox/devkit.md
@@ -12,7 +12,7 @@ But every device you want to add to Pybytes you need register on Sigfox backend.
After you add your Sigfox credentials to Pybytes you can see DevKit contract type is selected as default (on page Settings → Sigfox API).
-
+
## Add your device to Pybytes
@@ -22,7 +22,7 @@ After you add your Sigfox credentials to Pybytes you can see DevKit contract typ
2. Paste your device token to firmware updater
{{% hint style="info" %}}
-Detailed steps which are same for all devices are [**described here**](../../quick).
+Detailed steps which are same for all devices are [**described here**](/pybytes/connect/quick).
{{% /hint %}}
## Check sigfox status
@@ -33,7 +33,7 @@ Now you should see sigfox status component.
Click on _Check Sigfox status_ button
-
+
You should see two green lights.
diff --git a/scripts/githubToken.json.example b/scripts/githubToken.json.example
new file mode 100644
index 00000000..befc34b2
--- /dev/null
+++ b/scripts/githubToken.json.example
@@ -0,0 +1 @@
+{ "githubToken": "paste_your_github_access_token_here" }
diff --git a/scripts/package-lock.json b/scripts/package-lock.json
new file mode 100644
index 00000000..e37c19eb
--- /dev/null
+++ b/scripts/package-lock.json
@@ -0,0 +1,558 @@
+{
+ "name": "scripts",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@octokit/endpoint": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz",
+ "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==",
+ "requires": {
+ "@octokit/types": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "@octokit/request": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz",
+ "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==",
+ "requires": {
+ "@octokit/endpoint": "^5.5.0",
+ "@octokit/request-error": "^1.0.1",
+ "@octokit/types": "^2.0.0",
+ "deprecation": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "node-fetch": "^2.3.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "@octokit/request-error": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz",
+ "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==",
+ "requires": {
+ "@octokit/types": "^2.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ }
+ },
+ "@octokit/rest": {
+ "version": "16.35.0",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.35.0.tgz",
+ "integrity": "sha512-9ShFqYWo0CLoGYhA1FdtdykJuMzS/9H6vSbbQWDX4pWr4p9v+15MsH/wpd/3fIU+tSxylaNO48+PIHqOkBRx3w==",
+ "requires": {
+ "@octokit/request": "^5.2.0",
+ "@octokit/request-error": "^1.0.2",
+ "atob-lite": "^2.0.0",
+ "before-after-hook": "^2.0.0",
+ "btoa-lite": "^1.0.0",
+ "deprecation": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "lodash.set": "^4.3.2",
+ "lodash.uniq": "^4.5.0",
+ "octokit-pagination-methods": "^1.1.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "@octokit/types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz",
+ "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==",
+ "requires": {
+ "@types/node": ">= 8"
+ }
+ },
+ "@types/node": {
+ "version": "12.12.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz",
+ "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA=="
+ },
+ "ansi-escapes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
+ "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "atob-lite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz",
+ "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY="
+ },
+ "before-after-hook": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
+ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A=="
+ },
+ "btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc="
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "commander": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz",
+ "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "deprecation": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
+ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "figures": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
+ "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "inquirer": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
+ "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
+ "requires": {
+ "isobject": "^4.0.0"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
+ "lodash.set": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
+ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+ },
+ "macos-release": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz",
+ "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA=="
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "octokit-pagination-methods": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz",
+ "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "os-name": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz",
+ "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==",
+ "requires": {
+ "macos-release": "^2.2.0",
+ "windows-release": "^3.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rxjs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
+ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ }
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ },
+ "universal-user-agent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz",
+ "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==",
+ "requires": {
+ "os-name": "^3.1.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "windows-release": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz",
+ "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==",
+ "requires": {
+ "execa": "^1.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ }
+ }
+}
diff --git a/scripts/package.json b/scripts/package.json
new file mode 100644
index 00000000..8b2e0a7f
--- /dev/null
+++ b/scripts/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "scripts",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@octokit/rest": "^16.35.0",
+ "commander": "^4.0.1",
+ "inquirer": "^7.0.0"
+ }
+}
diff --git a/scripts/pydocs b/scripts/pydocs
new file mode 100755
index 00000000..123e04da
--- /dev/null
+++ b/scripts/pydocs
@@ -0,0 +1,106 @@
+#!/usr/bin/env node
+
+/**
+ * Module dependencies.
+ */
+
+const program = require('commander');
+const { execSync } = require('child_process');
+const Octokit = require('@octokit/rest');
+const fs = require('fs');
+const path = require('path');
+const inquirer = require('inquirer');
+
+const githubTokenRaw = fs.readFileSync(path.resolve(__dirname, 'githubToken.json'));
+const GITHUB_TOKEN = JSON.parse(githubTokenRaw).githubToken;
+const currentBranch = execSync('git rev-parse --abbrev-ref HEAD').toString().replace(/(\r\n|\n|\r)/gm, '');
+const repositoryName = 'pycom-documentation';
+
+/**
+ * It runs a shell command returning stdout and stderr, if any
+ * @param {string} command one or more commands that can be run in a shell
+ * @return {object} stdout and stderr
+ */
+async function runShellCommand(command) {
+ let stdout;
+ let stderr;
+ try {
+ console.log(`${command}...`);
+ ({ stdout, stderr } = await exec(command, { cwd: this.localDir }));
+ return { stdout, stderr };
+ } catch (e) {
+ return { stdout: e.stdout, stderr: e.stderr };
+ }
+}
+
+async function createReviewRequest(octokit, pullNumber, repo, reviewer) {
+ return octokit.pulls.createReviewRequest({
+ owner: 'pycom',
+ repo,
+ pull_number: pullNumber,
+ reviewers: [reviewer],
+ });
+}
+
+program
+ .command('pr ')
+ .description('Create two PRs from your current branch to base branches: publish and development-publish')
+ .action(async (reviewer) => {
+ const answers = await inquirer.prompt([
+ {
+ type: 'input',
+ name: 'prTitle',
+ message: "Please enter the title of your PR:"
+ },
+ {
+ type: 'input',
+ name: 'prDescription',
+ message: "Please enter the description of your PR:"
+ }
+ ]);
+
+ const octokit = new Octokit({ auth: GITHUB_TOKEN });
+
+ const { data: dataDev } = await octokit.pulls.create({
+ owner: 'pycom',
+ repo: repositoryName,
+ title: answers.prTitle,
+ body: answers.prDescription,
+ head: currentBranch,
+ base: 'publish',
+ });
+ console.log('created PR against develop branch:', dataDev.url);
+
+ try {
+ const { data: reviewDev } = await createReviewRequest(octokit, dataDev.number, repositoryName, reviewer);
+ console.log(`review for #${dataDev.number} requested review from: ${reviewDev.requested_reviewers[0].login}`);
+ } catch (e) {
+ console.log(e);
+ console.error('Failed to create add reviewer to your PR, maybe you used a wrong reviewer name?');
+ }
+
+ const { data: dataMaster } = await octokit.pulls.create({
+ owner: 'pycom',
+ repo: repositoryName,
+ title: answers.prTitle,
+ body: answers.prDescription,
+ head: currentBranch,
+ base: 'development-publish',
+ });
+ console.log('created PR against master branch:', dataMaster.url);
+
+ try {
+ const { data: reviewMaster } = await createReviewRequest(octokit, dataMaster.number, repositoryName, reviewer);
+ console.log(`review for #${dataMaster.number} requested review from: ${reviewMaster.requested_reviewers[0].login}`);
+ } catch (e) {
+ console.log(e);
+ console.error('Failed to create add reviewer to your PR, maybe you used a wrong reviewer name?');
+ }
+ });
+
+if (process.argv.length === 2) {
+ program.help();
+ process.exit(1);
+}
+
+program.parse(process.argv);
diff --git a/static/gitbook/assets/apiaccess (1).png b/static/gitbook/assets/apiaccess (1).png
deleted file mode 100644
index 9a22b26f..00000000
Binary files a/static/gitbook/assets/apiaccess (1).png and /dev/null differ
diff --git a/static/gitbook/assets/apiaccesskeys (1).png b/static/gitbook/assets/apiaccesskeys (1).png
deleted file mode 100644
index f6af910c..00000000
Binary files a/static/gitbook/assets/apiaccesskeys (1).png and /dev/null differ
diff --git a/static/gitbook/assets/apiaccessscope (1).png b/static/gitbook/assets/apiaccessscope (1).png
deleted file mode 100644
index 0b1d521a..00000000
Binary files a/static/gitbook/assets/apiaccessscope (1).png and /dev/null differ
diff --git a/static/gitbook/assets/apiaccessscope.png b/static/gitbook/assets/apiaccessscope.png
deleted file mode 100644
index 1bcce55a..00000000
Binary files a/static/gitbook/assets/apiaccessscope.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbk7blltxqntvqzh_-2fpysense_lopy4.png b/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbk7blltxqntvqzh_-2fpysense_lopy4.png
deleted file mode 100644
index 6e5db7f6..00000000
Binary files a/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbk7blltxqntvqzh_-2fpysense_lopy4.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbluw130dl1amaklt-2fpytrack_lopy4.png b/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbluw130dl1amaklt-2fpytrack_lopy4.png
deleted file mode 100644
index 2d8a7de9..00000000
Binary files a/static/gitbook/assets/assets-2f-lifiulge6_ztmmvcuea-2f-lkmxk1kqvbgjpw04i3u-2f-liqbluw130dl1amaklt-2fpytrack_lopy4.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn7x3eyyjifoqpxmzd-l01-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn7x3eyyjifoqpxmzd-l01-1.png
deleted file mode 100644
index 4d328bc4..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn7x3eyyjifoqpxmzd-l01-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn80ythqnrgah01r2m-lopy-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn80ythqnrgah01r2m-lopy-1.png
deleted file mode 100644
index 077f7c59..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn80ythqnrgah01r2m-lopy-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82srvkf3rhetvjpi-fipy-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82srvkf3rhetvjpi-fipy-1.png
deleted file mode 100644
index b1f7726a..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82srvkf3rhetvjpi-fipy-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82uldmpus0lnq1kx-expansion3.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82uldmpus0lnq1kx-expansion3.png
deleted file mode 100644
index 8dc4600c..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn82uldmpus0lnq1kx-expansion3.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ejihh1jeasccad-pytrack.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ejihh1jeasccad-pytrack.png
deleted file mode 100644
index b0167150..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ejihh1jeasccad-pytrack.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ftusu7mke5ppmd-wipy2-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ftusu7mke5ppmd-wipy2-1.png
deleted file mode 100644
index 246fdbbf..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83ftusu7mke5ppmd-wipy2-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hclnq-gurt2p_m-pysense.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hclnq-gurt2p_m-pysense.png
deleted file mode 100644
index 0717dffa..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hclnq-gurt2p_m-pysense.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hfia61dsuyojco-pyscan-new.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hfia61dsuyojco-pyscan-new.png
deleted file mode 100644
index fb8b5f69..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83hfia61dsuyojco-pyscan-new.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (1).png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (1).png
deleted file mode 100644
index c87911b3..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (1).png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (2).png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (2).png
deleted file mode 100644
index c87911b3..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1 (2).png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1.png
deleted file mode 100644
index c87911b3..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn83xkh3nwgrgs_fwq-g01-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85ios3qzh5brsxk2-w01.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85ios3qzh5brsxk2-w01.png
deleted file mode 100644
index 1f024bb3..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85ios3qzh5brsxk2-w01.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85npgnazxzxyv-nu-lopy4-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85npgnazxzxyv-nu-lopy4-1.png
deleted file mode 100644
index f5fb9e8a..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn85npgnazxzxyv-nu-lopy4-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86hknsrea22r0i-s-l04-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86hknsrea22r0i-s-l04-1.png
deleted file mode 100644
index 89f0030b..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86hknsrea22r0i-s-l04-1.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86jsexys_ho7ct7c-expansion2.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86jsexys_ho7ct7c-expansion2.png
deleted file mode 100644
index ee109820..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86jsexys_ho7ct7c-expansion2.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86n8h-hb1oh1idwb-sipy-2.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86n8h-hb1oh1idwb-sipy-2.png
deleted file mode 100644
index 4c8b4655..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86n8h-hb1oh1idwb-sipy-2.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86pdzbdvrponxeg6-wipy3.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86pdzbdvrponxeg6-wipy3.png
deleted file mode 100644
index 55970836..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn86pdzbdvrponxeg6-wipy3.png and /dev/null differ
diff --git a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn87yf-xz772800vwc-gpy-1.png b/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn87yf-xz772800vwc-gpy-1.png
deleted file mode 100644
index a13a77a8..00000000
Binary files a/static/gitbook/assets/assets-lil0igdl11z7jos_jpx-lkn7scqkkkb6tqb3uyo-lkn87yf-xz772800vwc-gpy-1.png and /dev/null differ
diff --git a/static/gitbook/assets/devkitcheck (1).png b/static/gitbook/assets/devkitcheck (1).png
deleted file mode 100644
index 37e87bb6..00000000
Binary files a/static/gitbook/assets/devkitcheck (1).png and /dev/null differ
diff --git a/static/gitbook/assets/devkitcheck.png b/static/gitbook/assets/devkitcheck.png
deleted file mode 100644
index b853f1c7..00000000
Binary files a/static/gitbook/assets/devkitcheck.png and /dev/null differ
diff --git a/static/gitbook/assets/apiaccess.png b/static/gitbook/assets/pybytes/sigfox/apiaccess.png
similarity index 100%
rename from static/gitbook/assets/apiaccess.png
rename to static/gitbook/assets/pybytes/sigfox/apiaccess.png
diff --git a/static/gitbook/assets/apiaccesskeys.png b/static/gitbook/assets/pybytes/sigfox/apiaccesskeys.png
similarity index 100%
rename from static/gitbook/assets/apiaccesskeys.png
rename to static/gitbook/assets/pybytes/sigfox/apiaccesskeys.png
diff --git a/static/gitbook/assets/pybytes/sigfox/apiaccessscope.png b/static/gitbook/assets/pybytes/sigfox/apiaccessscope.png
new file mode 100644
index 00000000..b6c74019
Binary files /dev/null and b/static/gitbook/assets/pybytes/sigfox/apiaccessscope.png differ
diff --git a/static/gitbook/assets/pybytes/sigfox/devkitcheck.png b/static/gitbook/assets/pybytes/sigfox/devkitcheck.png
new file mode 100644
index 00000000..4a40142b
Binary files /dev/null and b/static/gitbook/assets/pybytes/sigfox/devkitcheck.png differ
diff --git a/static/gitbook/assets/pybytesdevkit.png b/static/gitbook/assets/pybytes/sigfox/pybytesdevkit.png
similarity index 100%
rename from static/gitbook/assets/pybytesdevkit.png
rename to static/gitbook/assets/pybytes/sigfox/pybytesdevkit.png
diff --git a/static/gitbook/assets/pybytes/sigfox/pybytessigfoxcredentials.png b/static/gitbook/assets/pybytes/sigfox/pybytessigfoxcredentials.png
new file mode 100644
index 00000000..7badd485
Binary files /dev/null and b/static/gitbook/assets/pybytes/sigfox/pybytessigfoxcredentials.png differ
diff --git a/static/gitbook/assets/pybytes/sigfox/selectdevicetypecustomcontract.png b/static/gitbook/assets/pybytes/sigfox/selectdevicetypecustomcontract.png
new file mode 100644
index 00000000..b9040393
Binary files /dev/null and b/static/gitbook/assets/pybytes/sigfox/selectdevicetypecustomcontract.png differ
diff --git a/static/gitbook/assets/sigfoxcustomcontractstatus.png b/static/gitbook/assets/pybytes/sigfox/sigfoxcustomcontractstatus.png
similarity index 100%
rename from static/gitbook/assets/sigfoxcustomcontractstatus.png
rename to static/gitbook/assets/pybytes/sigfox/sigfoxcustomcontractstatus.png
diff --git a/static/gitbook/assets/pybytesdevkit (1).png b/static/gitbook/assets/pybytesdevkit (1).png
deleted file mode 100644
index c0950e6a..00000000
Binary files a/static/gitbook/assets/pybytesdevkit (1).png and /dev/null differ
diff --git a/static/gitbook/assets/pybytessigfoxcredentials (1).png b/static/gitbook/assets/pybytessigfoxcredentials (1).png
deleted file mode 100644
index f5821457..00000000
Binary files a/static/gitbook/assets/pybytessigfoxcredentials (1).png and /dev/null differ
diff --git a/static/gitbook/assets/pybytessigfoxcredentials.png b/static/gitbook/assets/pybytessigfoxcredentials.png
deleted file mode 100644
index c8671327..00000000
Binary files a/static/gitbook/assets/pybytessigfoxcredentials.png and /dev/null differ
diff --git a/static/gitbook/assets/selectdevicetypecustomcontract (1).png b/static/gitbook/assets/selectdevicetypecustomcontract (1).png
deleted file mode 100644
index a61932b8..00000000
Binary files a/static/gitbook/assets/selectdevicetypecustomcontract (1).png and /dev/null differ
diff --git a/static/gitbook/assets/selectdevicetypecustomcontract.png b/static/gitbook/assets/selectdevicetypecustomcontract.png
deleted file mode 100644
index 1dcf8340..00000000
Binary files a/static/gitbook/assets/selectdevicetypecustomcontract.png and /dev/null differ
diff --git a/static/gitbook/assets/sigfoxcustomcontractstatus (1).png b/static/gitbook/assets/sigfoxcustomcontractstatus (1).png
deleted file mode 100644
index 966bd893..00000000
Binary files a/static/gitbook/assets/sigfoxcustomcontractstatus (1).png and /dev/null differ