Library to sync git repository to Github Gists
Project description
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"
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file repo_gist_sync-0.4.4.tar.gz.
File metadata
- Download URL: repo_gist_sync-0.4.4.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c0aed516c16f7c7cdb964f3b8b6fbf18af36468762ef7b3d9d82dd0f1a29c31
|
|
| MD5 |
050e9ae592a7755830e1bffc272277f0
|
|
| BLAKE2b-256 |
4db62581667756a4b86c68f3b5cdba90a4c9a60dfbcb98c1e2fafde86d50f804
|
File details
Details for the file repo_gist_sync-0.4.4-py3-none-any.whl.
File metadata
- Download URL: repo_gist_sync-0.4.4-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb40913bc28920381bc590476a3fe1d08a4d1747fb1974acfff954418d8160ff
|
|
| MD5 |
a03a63c7984eda66eff29522da8b3257
|
|
| BLAKE2b-256 |
9a910bae06fa5f23766fec0013b3128cced8ab72362a2476169732e75eb531e9
|