{"id":13508459,"url":"https://github.com/watson/ci-info","last_synced_at":"2025-05-13T21:08:42.284Z","repository":{"id":39421968,"uuid":"71475907","full_name":"watson/ci-info","owner":"watson","description":"Get details about the current Continuous Integration environment ","archived":false,"fork":false,"pushed_at":"2025-03-09T09:55:56.000Z","size":206,"stargazers_count":341,"open_issues_count":23,"forks_count":54,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-07T11:41:13.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/watson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["sibiraj-s"]}},"created_at":"2016-10-20T15:16:32.000Z","updated_at":"2025-05-06T17:31:51.000Z","dependencies_parsed_at":"2025-04-13T12:47:36.288Z","dependency_job_id":"3f33836f-efa0-4d8a-ae6a-91bb75936d86","html_url":"https://github.com/watson/ci-info","commit_stats":{"total_commits":160,"total_committers":30,"mean_commits":5.333333333333333,"dds":0.6125,"last_synced_commit":"20fae89d2bdeb0e5dd70e6a9e8d2647764e6ff04"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson%2Fci-info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson%2Fci-info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson%2Fci-info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson%2Fci-info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/watson","download_url":"https://codeload.github.com/watson/ci-info/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253736100,"owners_count":21955782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:00:53.303Z","updated_at":"2025-05-13T21:08:37.270Z","avatar_url":"https://github.com/watson.png","language":"JavaScript","funding_links":["https://github.com/sponsors/sibiraj-s"],"categories":["JavaScript"],"sub_categories":[],"readme":"# ci-info\n\nGet details about the current Continuous Integration environment.\n\nPlease [open an\nissue](https://github.com/watson/ci-info/issues/new?template=ci-server-not-detected.md)\nif your CI server isn't properly detected :)\n\n[![npm](https://img.shields.io/npm/v/ci-info.svg)](https://www.npmjs.com/package/ci-info)\n[![Tests](https://github.com/watson/ci-info/workflows/Tests/badge.svg)](https://github.com/watson/ci-info/actions)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)\n\n## Installation\n\n```bash\nnpm install ci-info --save\n```\n\n## Usage\n\n```js\nvar ci = require('ci-info')\n\nif (ci.isCI) {\n  console.log('The name of the CI server is:', ci.name)\n} else {\n  console.log('This program is not running on a CI server')\n}\n```\n\n## Supported CI tools\n\nOfficially supported CI servers:\n\n| Name                                                                            | Constant                | isPR |\n| ------------------------------------------------------------------------------- | ----------------------- | ---- |\n| [Agola CI](https://agola.io/)                                                   | `ci.AGOLA`              | ✅   |\n| [Appcircle](https://appcircle.io/)                                              | `ci.APPCIRCLE`          | ✅   |\n| [AppVeyor](http://www.appveyor.com)                                             | `ci.APPVEYOR`           | ✅   |\n| [AWS CodeBuild](https://aws.amazon.com/codebuild/)                              | `ci.CODEBUILD`          | ✅   |\n| [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) | `ci.AZURE_PIPELINES`    | ✅   |\n| [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian                | `ci.BAMBOO`             | 🚫   |\n| [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines)         | `ci.BITBUCKET`          | ✅   |\n| [Bitrise](https://www.bitrise.io/)                                              | `ci.BITRISE`            | ✅   |\n| [Buddy](https://buddy.works/)                                                   | `ci.BUDDY`              | ✅   |\n| [Buildkite](https://buildkite.com)                                              | `ci.BUILDKITE`          | ✅   |\n| [CircleCI](http://circleci.com)                                                 | `ci.CIRCLE`             | ✅   |\n| [Cirrus CI](https://cirrus-ci.org)                                              | `ci.CIRRUS`             | ✅   |\n| [Cloudflare Pages](https://pages.cloudflare.com/)                               | `ci.CLOUDFLARE_PAGES`   | 🚫   |\n| [Codefresh](https://codefresh.io/)                                              | `ci.CODEFRESH`          | ✅   |\n| [Codeship](https://codeship.com)                                                | `ci.CODESHIP`           | 🚫   |\n| [Drone](https://drone.io)                                                       | `ci.DRONE`              | ✅   |\n| [dsari](https://github.com/rfinnie/dsari)                                       | `ci.DSARI`              | 🚫   |\n| [Earthly CI](https://earthly.dev/)                                              | `ci.EARTHLY`            | 🚫   |\n| [Expo Application Services](https://expo.dev/eas)                               | `ci.EAS`                | 🚫   |\n| [Gerrit CI](https://www.gerritcodereview.com)                                   | `ci.GERRIT`             | 🚫   |\n| [GitHub Actions](https://github.com/features/actions/)                          | `ci.GITHUB_ACTIONS`     | ✅   |\n| [GitLab CI](https://about.gitlab.com/gitlab-ci/)                                | `ci.GITLAB`             | ✅   |\n| [Gitea Actions](https://about.gitea.com/)                                       | `ci.GITEA_ACTIONS`      | 🚫  |\n| [GoCD](https://www.go.cd/)                                                      | `ci.GOCD`               | 🚫   |\n| [Google Cloud Build](https://cloud.google.com/build)                            | `ci.GOOGLE_CLOUD_BUILD` | 🚫   |\n| [Harness CI](https://www.harness.io/products/continuous-integration)            | `ci.HARNESS`            | 🚫   |\n| [Heroku](https://www.heroku.com)                                                | `ci.HEROKU`             | 🚫   |\n| [Hudson](http://hudson-ci.org)                                                  | `ci.HUDSON`             | 🚫   |\n| [Jenkins CI](https://jenkins-ci.org)                                            | `ci.JENKINS`            | ✅   |\n| [LayerCI](https://layerci.com/)                                                 | `ci.LAYERCI`            | ✅   |\n| [Magnum CI](https://magnum-ci.com)                                              | `ci.MAGNUM`             | 🚫   |\n| [Netlify CI](https://www.netlify.com/)                                          | `ci.NETLIFY`            | ✅   |\n| [Nevercode](http://nevercode.io/)                                               | `ci.NEVERCODE`          | ✅   |\n| [Prow](https://docs.prow.k8s.io/)                                               | `ci.PROW`               | 🚫   |\n| [ReleaseHub](https://releasehub.com/)                                           | `ci.RELEASEHUB`         | 🚫   |\n| [Render](https://render.com/)                                                   | `ci.RENDER`             | ✅   |\n| [Sail CI](https://sail.ci/)                                                     | `ci.SAIL`               | ✅   |\n| [Screwdriver](https://screwdriver.cd/)                                          | `ci.SCREWDRIVER`        | ✅   |\n| [Semaphore](https://semaphoreci.com)                                            | `ci.SEMAPHORE`          | ✅   |\n| [Sourcehut](https://sourcehut.org/)                                             | `ci.SOURCEHUT`          | 🚫   |\n| [Strider CD](https://strider-cd.github.io/)                                     | `ci.STRIDER`            | 🚫   |\n| [TaskCluster](http://docs.taskcluster.net)                                      | `ci.TASKCLUSTER`        | 🚫   |\n| [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains                    | `ci.TEAMCITY`           | 🚫   |\n| [Travis CI](http://travis-ci.org)                                               | `ci.TRAVIS`             | ✅   |\n| [Vela](https://go-vela.github.io/docs/)                                         | `ci.VELA`               | ✅   |\n| [Vercel](https://vercel.com/)                                                   | `ci.VERCEL`             | ✅   |\n| [Visual Studio App Center](https://appcenter.ms/)                               | `ci.APPCENTER`          | 🚫   |\n| [Woodpecker](https://woodpecker-ci.org/)                                        | `ci.WOODPECKER`         | ✅   |\n\n## API\n\n### `ci.name`\n\nReturns a string containing name of the CI server the code is running on.\nIf CI server is not detected, it returns `null`.\n\nDon't depend on the value of this string not to change for a specific\nvendor. If you find your self writing `ci.name === 'Travis CI'`, you\nmost likely want to use `ci.TRAVIS` instead.\n\n### `ci.isCI`\n\nReturns a boolean. Will be `true` if the code is running on a CI server,\notherwise `false`.\n\nSome CI servers not listed here might still trigger the `ci.isCI`\nboolean to be set to `true` if they use certain vendor neutral\nenvironment variables. In those cases `ci.name` will be `null` and no\nvendor specific boolean will be set to `true`.\n\n### `ci.isPR`\n\nReturns a boolean if PR detection is supported for the current CI server. Will\nbe `true` if a PR is being tested, otherwise `false`. If PR detection is\nnot supported for the current CI server, the value will be `null`.\n\n### `ci.\u003cVENDOR-CONSTANT\u003e`\n\nA vendor specific boolean constant is exposed for each support CI\nvendor. A constant will be `true` if the code is determined to run on\nthe given CI server, otherwise `false`.\n\nExamples of vendor constants are `ci.TRAVIS` or `ci.APPVEYOR`. For a\ncomplete list, see the support table above.\n\n## Ports\n\nci-info has been ported to the following languages\n\n| Language | Repository |\n|----------|------------|\n| Go       | https://github.com/hofstadter-io/cinful |\n| Rust     | https://github.com/sagiegurari/ci_info |\n| Kotlin   | https://github.com/cloudflightio/ci-info |\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatson%2Fci-info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwatson%2Fci-info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatson%2Fci-info/lists"}