Skip to main content

Look up GitHub tokens from various sources

Project description

Kokomikke

Kokomikke (koh•koh•mi•ke) is a Python library that looks up GitHub access tokens from various sources.

Installation

pip install kokomikke

Usage

Basic usage is as simple as:

import kokomikke

token = kokomikke.search()

By default, this will look for a GitHub token in the following locations, in order, returning as soon as one is found:

  1. The GITHUB_API_TOKEN environment variable
  2. The GITHUB_TOKEN environment variable
  3. The GH_TOKEN environment variable
  4. The GITHUB_PAT environment variable
  5. The GH_PAT environment variable
  6. GitHub CLI via gh auth token
  7. GitHub CLI via hosts.yml

If no token is found, kokomikke.search() will return None.

Sources

In order to search for token, Kokomikke needs sources. A source is an object of a class that inherits from kokomikke.sources.Source and implements the lookup() method:

from kokomikke.sources import Source

class MySource(Source):
    def lookup(self) -> str | None:
        # lookup logic goes here

Kokomikke comes with the following sources built-in:

kokomikke.sources.EnvironmentVariableSource

Searches a list of environment variables, in order, for a non-empty value.

It takes the following arguments:

  • variables (list[str], keyword-only, default: [GITHUB_API_TOKEN, GITHUB_TOKEN, GH_TOKEN, GITHUB_PAT, GH_PAT]): The variables to search.

kokomikke.sources.GitHubCLISource

Runs gh auth token and, if there is no error, returns its output.

It takes the following arguments:

  • hostname (str, keyword-only, default: github.com): The hostname of the GitHub instance to get a token for.

kokomikke.sources.GitHubCLIYamlSource

Reads GitHub CLI's hosts.yml file and returns a token if one is present.

It takes the following arguments:

  • hostname (str, keyword-only, default: github.com): The hostname of the GitHub instance to get a token for.

kokomikke.sources.GitSource

Calls git credential fill and returns a token if one is present in the output.

It takes the following arguments:

  • hostname (str, keyword-only, default: github.com): The hostname of the GitHub instance to get a token for.

kokomikke.sources.CommandSource

Runs an arbitrary command and, if there is no error, returns its output.

It takes the folowing arguments:

  • command: (list, keyword-only): Command arguments.

kokomikke.search() takes an optional sources argument, which expects a list of sources, each of which will be evaluated in order. For example, to first look for a token via gh auth token, but fall back to pass if that fails:

import kokomikke
from kokomikke.sources import CommandSource, GitHubCLISource

pass_source = CommandSource(command=["pass", "github.com/mona"])

token = kokomikke.search([GitHubCLISource, pass_source])

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

kokomikke-0.1.4.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

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

kokomikke-0.1.4-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file kokomikke-0.1.4.tar.gz.

File metadata

  • Download URL: kokomikke-0.1.4.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kokomikke-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8131acfe6259aac10e343d3adb5a5b5debc1caa013c2b93385eeebeefaf2ea11
MD5 edcd9f6eaf7d6bbeb865bd6f408b349c
BLAKE2b-256 4c33f8b7ea7cc90d1212b2ffc6dba9b0a4cbd42b0e4c582571ce08821af4307b

See more details on using hashes here.

Provenance

The following attestation bundles were made for kokomikke-0.1.4.tar.gz:

Publisher: release.yml on celsiusnarhwal/kokomikke

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kokomikke-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: kokomikke-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kokomikke-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d8850feb49e6509a485068f651927a0a365af96f5159ee70daa37213904e5708
MD5 1a2acee0ba78f101f724960d95806daf
BLAKE2b-256 c32e3d62491c7fbbaf9ee6cf27bb45f3fdaeef2f9c991228f7ef9801a8e3a03d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kokomikke-0.1.4-py3-none-any.whl:

Publisher: release.yml on celsiusnarhwal/kokomikke

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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