Flatten promoteRc API layer

Signed-off-by: Erik Engervall <erik.engervall@gmail.com>
This commit is contained in:
Erik Engervall
2021-04-29 22:11:29 +02:00
parent eafbae4a54
commit dc5ac3b700
3 changed files with 43 additions and 33 deletions
@@ -469,23 +469,26 @@ ${selectedPatchCommit.commit.message}`,
},
};
promoteRc: GitReleaseApi['promoteRc'] = {
promoteRelease: async ({ owner, repo, releaseId, releaseVersion }) => {
const { octokit } = await this.getOctokit();
const { data: promotedRelease } = await octokit.repos.updateRelease({
owner,
repo,
release_id: releaseId,
tag_name: releaseVersion,
prerelease: false,
});
promoteRelease: GitReleaseApi['promoteRelease'] = async ({
owner,
repo,
releaseId,
tagName,
}) => {
const { octokit } = await this.getOctokit();
const { data: promotedRelease } = await octokit.repos.updateRelease({
owner,
repo,
release_id: releaseId,
tag_name: tagName,
prerelease: false,
});
return {
name: promotedRelease.name,
tagName: promotedRelease.tag_name,
htmlUrl: promotedRelease.html_url,
};
},
return {
name: promotedRelease.name,
tagName: promotedRelease.tag_name,
htmlUrl: promotedRelease.html_url,
};
};
stats: GitReleaseApi['stats'] = {
@@ -767,18 +770,18 @@ export interface GitReleaseApi {
htmlUrl: string;
}>;
};
promoteRc: {
promoteRelease: (
args: {
releaseId: NonNullable<GetLatestReleaseResult>['id'];
releaseVersion: string;
} & OwnerRepo,
) => Promise<{
name: string | null;
promoteRelease: (
args: {
releaseId: number;
tagName: string;
htmlUrl: string;
}>;
};
} & OwnerRepo,
) => Promise<{
name: string | null;
tagName: string;
htmlUrl: string;
}>;
stats: {
getAllTags: (
args: OwnerRepo,
@@ -861,7 +864,7 @@ export type UpdateReleaseResult = UnboxReturnedPromise<
GitReleaseApi['patch']['updateRelease']
>;
export type PromoteReleaseResult = UnboxReturnedPromise<
GitReleaseApi['promoteRc']['promoteRelease']
GitReleaseApi['promoteRelease']
>;
export type GetAllTagsResult = UnboxReturnedPromise<
GitReleaseApi['stats']['getAllTags']
@@ -140,12 +140,12 @@ export function usePromoteRc({
abortIfError(createRcRes.error);
if (!createRcRes.value) return undefined;
const promotedRelease = await pluginApiClient.promoteRc
const promotedRelease = await pluginApiClient
.promoteRelease({
owner: project.owner,
repo: project.repo,
releaseId: rcRelease.id,
releaseVersion,
tagName: releaseVersion,
})
.catch(asyncCatcher);
@@ -32,8 +32,14 @@ export const useGetGitBatchInfo = ({
}: GetGitBatchInfo) => {
const gitBatchInfo = useAsync(async () => {
const [repository, latestRelease] = await Promise.all([
pluginApiClient.getRepository({ ...project }),
pluginApiClient.getLatestRelease({ ...project }),
pluginApiClient.getRepository({
owner: project.owner,
repo: project.repo,
}),
pluginApiClient.getLatestRelease({
owner: project.owner,
repo: project.repo,
}),
]);
if (latestRelease === null) {
@@ -45,7 +51,8 @@ export const useGetGitBatchInfo = ({
}
const releaseBranch = await pluginApiClient.getBranch({
...project,
owner: project.owner,
repo: project.repo,
branchName: latestRelease.targetCommitish,
});