public function edit($user, $repo, $releaseId, $tagName,
		$targetCommitish = null, $name = null, $body = null, $draft = null, $preRelease = null)
	{
		// Build the request path.
		$path = '/repos/' . $user . '/' . $repo . '/releases/' . (int) $releaseId;

		// Create the data object.
		$data = new \stdClass;
		$data->tag_name = $tagName;

		// Check if input values are set and add them to the data object.
		if (isset($targetCommitish))
		{
			$data->target_commitish = $targetCommitish;
		}

		if (isset($name))
		{
			$data->name = $name;
		}

		if (isset($body))
		{
			$data->body = $body;
		}

		if (isset($draft))
		{
			$data->draft = $draft;
		}

		if (isset($preRelease))
		{
			$data->prerelease = $preRelease;
		}

		// Encode the request data.
		$data = json_encode($data);

		// Send the request.
		return $this->processResponse($this->client->patch($this->fetchUrl($path), $data));
	}