Repo Gist Sync
A library to synchronize git repository to Github Gists
graph TD;
A(local machine)
A -->|push| B(Github repository)
B -->|Github Actions| C(Gists)
B -->|Github Actions| E(Gists)
B -->|Github Actions| F(Gists)
C --> D(Embeds)
E --> G(Embeds)
F --> H(Embeds)
C --> I(Embeds)
E --> J(Embeds)
F --> K(Embeds)
Installation
Install from PyPI.
pip install repo-gist-sync
Dependencies: requests, click
Example
- Write the Code as follows (in the repository, examples folder):
get_user_id.py
#-- title: Get User's ID
#-- description: Code to retrieve user_id from username
#-- tags: python, medium_api, medium_api_py
# Import libraries
import os
from medium_api import Medium
#%%
# Get RAPIDAPI_KEY from the environment
api_key = os.getenv('RAPIDAPI_KEY')
#%%
# Create a `Medium` Object
medium = Medium(api_key)
#%%
# Get the `User` Object using "username" and print ID
user = medium.user(username="nishu-jain")
print(user.user_id)
get_user_id_output.txt
1985b61817c3
- Sync using
gistdirsyncCLI tool (from local machine or via Github Actions).
gistdirsync --auth-token $GIST_TOKEN --directory /path/to/examples
- Resulting Gist looks like this.
[Get User's ID] Code to retrieve user_id from username #python #medium_api #medium_api_py
get_user_id.py
# Import libraries
import os
from medium_api import Medium
# Get RAPIDAPI_KEY from the environment
api_key = os.getenv('RAPIDAPI_KEY')
# Create a `Medium` Object
medium = Medium(api_key)
# Get the `User` Object using "username" and print ID
user = medium.user(username="nishu-jain")
print(user.user_id)
get_user_id_1.py
# Import libraries
import os
from medium_api import Medium
get_user_id_2.py
# Get RAPIDAPI_KEY from the environment
api_key = os.getenv('RAPIDAPI_KEY')
get_user_id_3.py
# Create a `Medium` Object
medium = Medium(api_key)
get_user_id_4.py
# Get the `User` Object using "username" and print ID
user = medium.user(username="nishu-jain")
print(user.user_id)
get_user_id_output.txt
1985b61817c3
Continuous Deployment with Github Actions
Note: You can generate the GIST_TOKEN in Github Settings and place it in "secrets" in repository's settings.
Place an YAML file under .github/workflow/repo-gist-sync.yml with the following content:
name: GIST CD on main branch and example directory change
on:
push:
paths:
- examples/**
jobs:
build:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8']
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install repo-gist-sync
run: pip install repo-gist-sync
- name: Use "gistsyncdir" on "examples" directory
run: gistdirsync --auth-token ${{ secrets.GIST_TOKEN }} --directory ./examples/
Note: Change directory name ("examples") as per required in the yaml file.
Features
- Supports python (
.py), javascrip (.js) and shellscripts (.sh) - In case of python and shellscripts, it can write metadata (title, description, & tags) for gists in code file itself (
#--). - Break the code in smaller snippets using separator (
#%%). - Can save the output in the corresponding gist by creating an additional file as "filename_output.txt"
Metadata
Release files for repo-gist-sync 0.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| repo_gist_sync-0.4.5.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| repo_gist_sync-0.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.2 kB
Release files / repo_gist_sync-0.4.5.tar.gz
| Download URL | repo_gist_sync-0.4.5.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
757d29ee893dfdaf2537467081e1199c41a95399e9a1a13ae5c353aa34b67ae1
|
|
BLAKE2b-256 checksum How to use checksums |
ba0b24cb46288be32cbbcb180a63a84baffb3c1785559d5a21d28df6cbaad97a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.19
|
Release files / repo_gist_sync-0.4.5-py3-none-any.whl
| Download URL | repo_gist_sync-0.4.5-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7670e7a27b5def8c0d956b5f5875c0dde97210968a30514e9d0c65d522750a0
|
|
BLAKE2b-256 checksum How to use checksums |
8f0fd938c3d3103be8450888589944432f5fc1ac59afc3d51c6bb372de29b5f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.19
|