id

A tool for generating OIDC identities

https://github.com/di/id

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 9 committers (11.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords from Contributors

interactive distributed mesh interpretability profiles sequences generic projection standardization optim
Last synced: 10 months ago · JSON representation

Repository

A tool for generating OIDC identities

Basic Info
  • Host: GitHub
  • Owner: di
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 425 KB
Statistics
  • Stars: 11
  • Watchers: 5
  • Forks: 3
  • Open Issues: 1
  • Releases: 11
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License

README.md

id

CI PyPI version OpenSSF Scorecard SLSA <!--- @end-badges@ --->

id is a Python tool for generating OIDC identities. It can automatically detect and produce OIDC credentials on a number of environments, including GitHub Actions, GitLab pipelines and Google Cloud.

Installation

id requires Python 3.8 or newer, and can be installed directly via pip:

console python -m pip install id

Usage

You can run id as a Python module via python -m:

console python -m id --help

Top-level:

``` usage: id [-h] [-V] [-v] [-d] audience

a tool for generating OIDC identities

positional arguments: audience the OIDC audience to use

optional arguments: -h, --help show this help message and exit -V, --version show program's version number and exit -v, --verbose run with additional debug logging; supply multiple times to increase verbosity (default: 0) -d, --decode decode the OIDC token into JSON (default: False) ``` <!-- @end-id-help@ -->

For Python API usage, there is a single importable function, detect_credential:

```pycon

from id import detectcredential detectcredential(audience='something') '' ```

This function requires an audience parameter, which is used when generating the OIDC token. This should be set to the intended audience for the token.

If no supported environment is found, detect_credential returns None. If a supported environment is found but detect_credential fails to retrieve a token, it raises AmbientCredentialError.

Supported environments

id currently supports ambient credential detection in the following environments:

Tokens in environment variables

GitLab provides OIDC tokens through environment variables. The variable name must be <AUD>_ID_TOKEN where <AUD> is the uppercased audience argument where all characters outside of ASCII letters and digits are replaced with "_". A leading digit must also be replaced with a "_".

Licensing

id is licensed under the Apache 2.0 License.

Contributing

See the contributing docs for details.

SLSA Provenance

This project emits a SLSA provenance on its release! This enables you to verify the integrity of the downloaded artifacts and ensured that the binary's code really comes from this source code.

To do so, please follow the instructions here.

Owner

  • Name: Dustin Ingram
  • Login: di
  • Kind: user
  • Location: Philadelphia, PA
  • Company: @google

@google open source security team, @psf / @pypi / @pypa

GitHub Events

Total
  • Create event: 99
  • Release event: 1
  • Issues event: 3
  • Watch event: 3
  • Delete event: 94
  • Issue comment event: 104
  • Push event: 112
  • Pull request review comment event: 2
  • Pull request review event: 98
  • Pull request event: 197
  • Fork event: 1
Last Year
  • Create event: 99
  • Release event: 1
  • Issues event: 3
  • Watch event: 3
  • Delete event: 94
  • Issue comment event: 104
  • Push event: 112
  • Pull request review comment event: 2
  • Pull request review event: 98
  • Pull request event: 197
  • Fork event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 266
  • Total Committers: 9
  • Avg Commits per committer: 29.556
  • Development Distribution Score (DDS): 0.143
Past Year
  • Commits: 160
  • Committers: 5
  • Avg Commits per committer: 32.0
  • Development Distribution Score (DDS): 0.094
Top Committers
Name Email Commits
dependabot[bot] 4****] 228
William Woodruff w****m@t****m 19
Dustin Ingram di 10
Alex Cameron a****c@t****h 3
Jussi Kukkonen j****n@g****m 2
Alex Cameron a****n@g****m 1
Jussi Kukkonen j****u@g****i 1
Matthew Feickert m****t@c****h 1
Casper da Costa-Luis c****l@p****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 12
  • Total pull requests: 496
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Total issue authors: 6
  • Total pull request authors: 8
  • Average comments per issue: 1.5
  • Average comments per pull request: 1.01
  • Merged pull requests: 416
  • Bot issues: 0
  • Bot pull requests: 447
Past Year
  • Issues: 3
  • Pull requests: 164
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 5
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.86
  • Merged pull requests: 133
  • Bot issues: 0
  • Bot pull requests: 151
Top Authors
Issue Authors
  • woodruffw (5)
  • mgorny (2)
  • jku (2)
  • haydentherapper (1)
  • matthewfeickert (1)
  • ikszzz (1)
Pull Request Authors
  • dependabot[bot] (447)
  • woodruffw (28)
  • di (10)
  • tetsuo-cpp (4)
  • jku (3)
  • matthewfeickert (2)
  • casperdcl (1)
  • webknjaz (1)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (449) github_actions (281) python (165) enhancement (5) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 14,982,552 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 50
  • Total versions: 10
  • Total maintainers: 2
pypi.org: id

A tool for generating OIDC identities

  • Versions: 10
  • Dependent Packages: 3
  • Dependent Repositories: 50
  • Downloads: 14,982,552 Last month
Rankings
Downloads: 1.1%
Dependent repos count: 2.1%
Dependent packages count: 3.3%
Average: 10.5%
Forks count: 22.8%
Stargazers count: 23.2%
Maintainers (2)
Last synced: 10 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • actions/setup-python d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 composite
  • re-actors/alls-green 05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe composite
.github/workflows/lint.yml actions
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • actions/setup-python d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 composite
  • re-actors/alls-green 05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe composite
.github/workflows/release.yml actions
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • actions/download-artifact 9bc31d5ccc31df68ecc42ccf4149144866c47d8a composite
  • actions/setup-python d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 composite
  • actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
  • pypa/gh-action-pypi-publish c7f29f7adef1a245bd91520e94867e5c6eedddcc composite
  • softprops/action-gh-release de2c0eb89ae2a093876385947365aca7b0e5f844 composite
.github/workflows/scorecards-analysis.yml actions
  • actions/checkout ac593985615ec2ede58e132d2e21d2b1cbd6127c composite
  • actions/upload-artifact 6673cd052c4cd6fcf4b4e6e60ea986c889389535 composite
  • github/codeql-action/upload-sarif 32dc499307d133bb5085bae78498c0ac2cf762d5 composite
  • ossf/scorecard-action e38b1902ae4f44df626f11ba0734b14fb91f8f86 composite
pyproject.toml pypi
  • pydantic *
  • requests *