Skip to main content

Library to sync git repository to Github Gists

Project description

Repo Gist Sync

https://pypi.python.org/pypi/repo-gist-sync https://pypistats.org/packages/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

  1. 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
  1. Sync using gistdirsync CLI tool (from local machine or via Github Actions).
gistdirsync --auth-token $GIST_TOKEN --directory /path/to/examples
  1. 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

repo_gist_sync-0.4.4.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repo_gist_sync-0.4.4-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

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

Hashes for repo_gist_sync-0.4.4.tar.gz
Algorithm Hash digest
SHA256 6c0aed516c16f7c7cdb964f3b8b6fbf18af36468762ef7b3d9d82dd0f1a29c31
MD5 050e9ae592a7755830e1bffc272277f0
BLAKE2b-256 4db62581667756a4b86c68f3b5cdba90a4c9a60dfbcb98c1e2fafde86d50f804

See more details on using hashes here.

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

Hashes for repo_gist_sync-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 eb40913bc28920381bc590476a3fe1d08a4d1747fb1974acfff954418d8160ff
MD5 a03a63c7984eda66eff29522da8b3257
BLAKE2b-256 9a910bae06fa5f23766fec0013b3128cced8ab72362a2476169732e75eb531e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page