repo-gist-sync 0.4.2

Creator: railscoder56

Last updated:

Add to Cart

Description:

repogistsync 0.4.2

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 gistdirsync CLI 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) and shellscripts (.sh)
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"

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.