Skip to content

Commit

Permalink
🎨 Removed empty tag deletion logic
Browse files Browse the repository at this point in the history
  • Loading branch information
nikhilbadyal committed Aug 29, 2023
1 parent 3978cd9 commit dfa744b
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 37 deletions.
4 changes: 1 addition & 3 deletions __test__/github_auth.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ describe('auth tests', () => {
let invalidOctokit = getMyOctokit('lol_invalid_token', {
log: console
})
await expect(() =>
getReleases(invalidOctokit, 'latest-*')
).rejects.toThrowError()
await expect(() => getReleases(invalidOctokit, 'bs')).rejects.toThrowError()
})
it('failed on empty token', async () => {
await expect(() =>
Expand Down
2 changes: 1 addition & 1 deletion __test__/github_fetch_delete.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ describe('fetch & delete tests', () => {
let searchedReleases = await getReleases(octokit, tag_name)
expect(searchedReleases).not.toBeUndefined()
expect(searchedReleases.length).toEqual(1)
await rmReleases(octokit, tag_name, '^v0.0.*')
await rmReleases(octokit, tag_name)
searchedReleases = await getReleases(octokit, tag_name)
expect(searchedReleases).not.toBeUndefined()
expect(searchedReleases.length).toEqual(0)
Expand Down
6 changes: 3 additions & 3 deletions __test__/github_wrong_tag.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe('wrong tags and releases', () => {
log: console
})
})
it('throw an error', async () => {
it('throw an error on wrong release', async () => {
let sampleRelease: Release = {
id: 12,
name: 'test',
Expand All @@ -47,7 +47,7 @@ describe('wrong tags and releases', () => {
deleteRelease(octokit, sampleRelease)
).rejects.toThrowError()
})
it('throw an error', async () => {
it('throw an error on wrong tag', async () => {
let sampleRelease: Release = {
id: 12,
name: 'test',
Expand All @@ -61,6 +61,6 @@ describe('wrong tags and releases', () => {
).rejects.toThrowError()
})
it('print nothing found', async () => {
await rmReleases(octokit, 'idontexist', '^v0.0.*')
await rmReleases(octokit, 'idontexist')
})
})
2 changes: 1 addition & 1 deletion dist/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

37 changes: 9 additions & 28 deletions src/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ export async function deleteRelease(octokit, release: Release): Promise<void> {
}
}

export async function deleteTag(octokit, tagName: string): Promise<void> {
export async function deleteTag(
octokit: InstanceType<typeof GitHub>,
tagName: string
): Promise<void> {
info(`Deleting tag ${tagName}`)
try {
await octokit.rest.git.deleteRef({
Expand All @@ -71,38 +74,17 @@ export async function deleteTag(octokit, tagName: string): Promise<void> {
}
}

async function deleteReleaseAndTag(octokit, release: Release): Promise<void> {
await deleteRelease(octokit, release)
await deleteTag(octokit, release.tag_name)
}

async function lsTags(octokit): Promise<Tag[]> {
const tags: Tag[] = await octokit.paginate(octokit.rest.repos.listTags, {
...context.repo
})
info(`Found ${tags.length} tags`)
return tags
}
async function deleteEmptyTag(
async function deleteReleaseAndTag(
octokit: InstanceType<typeof GitHub>,
skipPattern: string
release: Release
): Promise<void> {
const tags = await lsTags(octokit)
const regex = new RegExp(skipPattern, 'u')
await asyncForEach(tags, async tag => {
if (regex.test(tag.name)) {
info(`Skipping tag with id ${tag.name}`)
} else {
info(`Deleting tag with id ${tag.name}`)
await deleteTag(octokit, tag.name)
}
})
await deleteRelease(octokit, release)
await deleteTag(octokit, release.tag_name)
}

export async function rmReleases(
octokit: InstanceType<typeof GitHub>,
releasePattern: string,
skipEmptyTag = '(?!.*)'
releasePattern: string
): Promise<void> {
const releases: Release[] = await getReleases(octokit, releasePattern)
const matches: number = releases.length
Expand All @@ -114,5 +96,4 @@ export async function rmReleases(
} else {
info('No release to delete.')
}
await deleteEmptyTag(octokit, skipEmptyTag)
}

0 comments on commit dfa744b

Please sign in to comment.