Skip to content

Commit 765fadf

Browse files
authored
Merge pull request #140 from Lansoweb/private-repository
Private repository release support
2 parents daa21ce + 656230f commit 765fadf

File tree

3 files changed

+36
-7
lines changed

3 files changed

+36
-7
lines changed

bin/console.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
namespace Laminas\AutomaticReleases\WebApplication;
77

8+
use ChangelogGenerator\GitHubOAuthToken;
89
use DateTimeZone;
910
use ErrorException;
1011
use Http\Discovery\HttpClientDiscovery;
@@ -86,7 +87,8 @@ static function (int $errorCode, string $message = '', string $file = '', int $l
8687
);
8788
$createCommitText = new CreateReleaseTextThroughChangelog(JwageGenerateChangelog::create(
8889
$makeRequests,
89-
$httpClient
90+
$httpClient,
91+
new GitHubOAuthToken($githubToken)
9092
));
9193
$createReleaseText = new MergeMultipleReleaseNotes([
9294
new CreateReleaseTextViaKeepAChangelog($changelogExists, new SystemClock(new DateTimeZone('UTC'))),

src/Github/JwageGenerateChangelog.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use ChangelogGenerator\ChangelogConfig;
88
use ChangelogGenerator\ChangelogGenerator;
9+
use ChangelogGenerator\GitHubCredentials;
910
use ChangelogGenerator\IssueClient;
1011
use ChangelogGenerator\IssueFactory;
1112
use ChangelogGenerator\IssueFetcher;
@@ -20,23 +21,26 @@
2021
final class JwageGenerateChangelog implements GenerateChangelog
2122
{
2223
private ChangelogGenerator $changelogGenerator;
24+
private GitHubCredentials $gitHubCredentials;
2325

24-
public function __construct(ChangelogGenerator $changelogGenerator)
26+
public function __construct(ChangelogGenerator $changelogGenerator, GitHubCredentials $gitHubCredentials)
2527
{
2628
$this->changelogGenerator = $changelogGenerator;
29+
$this->gitHubCredentials = $gitHubCredentials;
2730
}
2831

2932
public static function create(
3033
RequestFactoryInterface $messageFactory,
31-
ClientInterface $client
34+
ClientInterface $client,
35+
GitHubCredentials $gitHubCredentials
3236
): self {
3337
$issueClient = new IssueClient($messageFactory, $client);
3438
$issueFactory = new IssueFactory();
3539
$issueFetcher = new IssueFetcher($issueClient);
3640
$issueRepository = new IssueRepository($issueFetcher, $issueFactory);
3741
$issueGrouper = new IssueGrouper();
3842

39-
return new self(new ChangelogGenerator($issueRepository, $issueGrouper));
43+
return new self(new ChangelogGenerator($issueRepository, $issueGrouper), $gitHubCredentials);
4044
}
4145

4246
public function __invoke(
@@ -46,7 +50,8 @@ public function __invoke(
4650
$config = (new ChangelogConfig())
4751
->setUser($repositoryName->owner())
4852
->setRepository($repositoryName->name())
49-
->setMilestone($semVerVersion->fullReleaseName());
53+
->setMilestone($semVerVersion->fullReleaseName())
54+
->setGitHubCredentials($this->gitHubCredentials);
5055

5156
$output = new BufferedOutput();
5257

test/unit/Github/JwageGenerateChangelogTest.php

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,27 @@
66

77
use ChangelogGenerator\ChangelogConfig;
88
use ChangelogGenerator\ChangelogGenerator;
9+
use ChangelogGenerator\GitHubCredentials;
10+
use ChangelogGenerator\GitHubOAuthToken;
11+
use Http\Client\HttpClient;
912
use Laminas\AutomaticReleases\Git\Value\SemVerVersion;
1013
use Laminas\AutomaticReleases\Github\JwageGenerateChangelog;
1114
use Laminas\AutomaticReleases\Github\Value\RepositoryName;
1215
use PHPUnit\Framework\TestCase;
16+
use Psr\Http\Message\RequestFactoryInterface;
1317
use Symfony\Component\Console\Output\BufferedOutput;
1418

1519
final class JwageGenerateChangelogTest extends TestCase
1620
{
1721
public function testGenerateChangelog(): void
1822
{
23+
$githubCredentials = new GitHubOAuthToken('token');
24+
1925
$config = (new ChangelogConfig())
2026
->setUser('laminas')
2127
->setRepository('repository-name')
22-
->setMilestone('1.0.0');
28+
->setMilestone('1.0.0')
29+
->setGitHubCredentials($githubCredentials);
2330

2431
$output = new BufferedOutput();
2532

@@ -32,7 +39,22 @@ public function testGenerateChangelog(): void
3239
$repositoryName = RepositoryName::fromFullName('laminas/repository-name');
3340
$semVerVersion = SemVerVersion::fromMilestoneName('1.0.0');
3441

35-
(new JwageGenerateChangelog($changelogGenerator))
42+
(new JwageGenerateChangelog($changelogGenerator, $githubCredentials))
3643
->__invoke($repositoryName, $semVerVersion);
3744
}
45+
46+
public function testCreateGenerateChangelog(): void
47+
{
48+
$makeRequests = $this->createMock(RequestFactoryInterface::class);
49+
$httpClient = $this->createMock(HttpClient::class);
50+
$githubToken = $this->createMock(GitHubCredentials::class);
51+
52+
$changeLogGenerator = JwageGenerateChangelog::create(
53+
$makeRequests,
54+
$httpClient,
55+
$githubToken
56+
);
57+
58+
$this->assertInstanceOf(JwageGenerateChangelog::class, $changeLogGenerator);
59+
}
3860
}

0 commit comments

Comments
 (0)