ci-info
A Python implementation of watson/ci-info. Get details about the current Continuous Integration environment.
Please open an issue if your CI server isn't properly detected :)
Supported CI tools
Officially supported CI servers:
| Name | isPR |
|---|---|
| Agola CI | ✅ |
| Appcircle | ✅ |
| AppVeyor | ✅ |
| AWS CodeBuild | ✅ |
| Azure Pipelines | ✅ |
| Bamboo by Atlassian | 🚫 |
| Bitbucket Pipelines | ✅ |
| Bitrise | ✅ |
| Buddy | ✅ |
| Buildkite | ✅ |
| CircleCI | ✅ |
| Cirrus CI | ✅ |
| Cloudflare Pages | 🚫 |
| Cloudflare Workers | 🚫 |
| Codefresh | ✅ |
| Codeship | 🚫 |
| Drone | ✅ |
| dsari | 🚫 |
| Earthly CI | 🚫 |
| Expo Application Services | 🚫 |
| Gerrit CI | 🚫 |
| GitHub Actions | ✅ |
| GitLab CI | ✅ |
| Gitea Actions | 🚫 |
| GoCD | 🚫 |
| Google Cloud Build | 🚫 |
| Harness CI | 🚫 |
| Heroku | 🚫 |
| Hudson | 🚫 |
| Jenkins CI | ✅ |
| LayerCI | ✅ |
| Magnum CI | 🚫 |
| Netlify CI | ✅ |
| Nevercode | ✅ |
| Prow | 🚫 |
| ReleaseHub | 🚫 |
| Render | ✅ |
| Sail CI | ✅ |
| Screwdriver | ✅ |
| Semaphore | ✅ |
| Shippable | ✅ |
| Solano CI | ✅ |
| Sourcehut | 🚫 |
| Strider CD | 🚫 |
| TaskCluster | 🚫 |
| TeamCity by JetBrains | 🚫 |
| Travis CI | ✅ |
| Vela | ✅ |
| Vercel | ✅ |
| Visual Studio App Center | 🚫 |
| Woodpecker | ✅ |
Installation
pip install ci-info
Usage
import ci_info
if ci_info.is_ci():
print(ci_info.name())
"My CI Name"
API
ci_info.name()
Returns a string containing name of the CI server the code is running on.
If CI server is not detected, it returns None.
Don't depend on the value of this string not to change for a specific vendor.
ci_info.is_ci()
Returns a boolean. Will be True if the code is running on a CI server,
otherwise False.
Some CI servers not listed here might still trigger the ci_info.is_ci()
boolean to be set to True if they use certain vendor neutral
environment variables. In those cases ci_info.name() will be None and no
vendor specific boolean will be set to True.
ci_info.is_pr()
Returns a boolean if PR detection is supported for the current CI server. Will
be True if a PR is being tested, otherwise False. If PR detection is
not supported for the current CI server, the value will be None.
ci_info.info()
Returns a dictionary of all above values in key/value pairs.
License
Release files for ci-info 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ci_info-0.4.0.tar.gz | 6.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ci_info-0.4.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 13.2 kB
Release files / ci_info-0.4.0.tar.gz
| Download URL | ci_info-0.4.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34d5a18726b3780abdf985234b871ac33124d64dd8e294870b8cc5b410c18418
|
|
BLAKE2b-256 checksum How to use checksums |
f1057880d5714b2e1c4c2f2ccbd04b2e2bdcd3753d91d5e925b3a91af25970db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 2, 2026.
Transparency logRelease files / ci_info-0.4.0-py2.py3-none-any.whl
| Download URL | ci_info-0.4.0-py2.py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
204e8ef60cb70270eefb2b3035fe6acc78a186dbbcb02f8f4f051cb20a6fbb8d
|
|
BLAKE2b-256 checksum How to use checksums |
12d527742bf24dde737fe05e6fba615d9aa1bf95f4dda258a45cf97eb403366e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 2, 2026.
Transparency log