> For the complete documentation index, see [llms.txt](https://senselab.gitbook.io/senselab-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://senselab.gitbook.io/senselab-docs/vendor/ondram/ci-detector/changelog.md).

# Changelog

## Unreleased

## 4.2.0 - 2024-03-12

* Require PHP ^7.4.
* Deprecate Wercker, which ceased to exist.

## 4.1.0 - 2021-04-14

* Add SourceHut detection support.

## 4.0.0 - 2021-02-02

### Added

* `getTargetBranch()` method to return the name of the branch where current branch is targeted (aka "base branch").
* Azure DevOps Pipelines detection support.
* `CiDetectorInterface` (extended by `CiDetector`) to allow simpler extension.

### Fixed

* Fix build URL detection on Travis (it always reported travis-ci.org URL, even if the build was on travis-ci.com).

### Changed

* **\[BC break]** Rename methods to make them VCS-agnostic. Use `getCommit()` instead of `getGitCommit()` and `getBranch()` instead of `getGitBranch()`.
* **\[BC break]** Declare `CiDetector` constructor final.

### Removed

* **\[BC break]** Remove `Travis::TRAVIS_BASE_URL` constant.

## 3.5.1 - 2020-09-04

* Allow PHP 8.

## 3.5.0 - 2020-08-25

* Use more suitable value for "build number" on GitHub Actions.
* Add Wercker detection support.

## 3.4.0 - 2020-05-11

* Add AWS CodeBuild detection support.
* Add Bitbucket Pipelines support.
* Allow late static binding in `CiDetector::fromEnvironment()` when inheriting the class.
* Fix branch detection in PR builds on AppVeyor, Buddy and GitHub Actions (target branch of the PR was returned instead).

## 3.3.0 - 2020-03-06

* Allow injecting instance of `Env` using `CiDetector::fromEnvironment()` (useful for environment mocking in unit tests).

## 3.2.0 - 2020-02-18

* Add GitHub Actions detection support.
* Add Buddy detection support.
* Add `getRepositoryName()` method to detect repository name (slug) like `OndraM/ci-detector` (not supported on TeamCity, Jenkins and continuousphp).
* Add `isPullRequest()` to detect if current build has been triggered by a pull request (merge request). Be aware that this method returns a `TrinaryLogic` object to handle cases when it cannot be detected whether build was triggered by a pull request (like on TeamCity and Jenkins CI).
* Change build URL on AppVeyor to use new permalink URL.

## 3.1.1 - 2019-11-11

* Fix Gitlab 9.0+ support (environment variables were renamed in GitLab 9.0+).

## 3.1.0 - 2018-02-19

* Add continuousphp CI support.
* Add drone CI support.

## 3.0.0 - 2017-10-27

* Require PHP 7.1, use strict types.

## 2.1.0 - 2017-05-26

* Add AppVeyor (Windows cloud CI) support.

## 2.0.0 - 2017-01-07

* **\[BC break]** The `detect()` method of `CiDetector` class is no longer static.
* **\[BC break]** Rearrange namespaces, all classes are now in `CiDetector` sub-namespace.
* Added `isCiDetected()` method to detect if current environment is CI.
* **\[BC break]** `detect()` method always returns instance of `CiInterface` and throws `CiNotDetectedException` if CI environment is not detected.

## 1.1.0 - 2017-01-06

* Add `getGitBranch()` method to detect Git branch of the build (supported by all CIs except TeamCity).
* Add `getRepositoryUrl()` method to detect repository source URL (not supported Codeship, TeamCity, Travis).

## 1.0.0 - 2016-08-20

* Initial release supporting Jenkins, Travis CI, Bamboo, CircleCI, Codeship, GitLab and TeamCity services.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://senselab.gitbook.io/senselab-docs/vendor/ondram/ci-detector/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
