Skip to content

Commit e9de48e

Browse files
committed
Add issue closed workflow
1 parent c979ae3 commit e9de48e

8 files changed

Lines changed: 99 additions & 2 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Process Issue Closed
2+
3+
on:
4+
issues:
5+
types:
6+
- closed
7+
8+
permissions:
9+
contents: write
10+
id-token: write
11+
issues: write
12+
13+
jobs:
14+
submit:
15+
name: Process Issue Closed
16+
runs-on: ubuntu-latest
17+
18+
if: |
19+
github.event.issue.state == 'closed'
20+
21+
steps:
22+
- name: Get GitHub App Token
23+
id: token
24+
uses: actions/create-github-app-token@v1
25+
with:
26+
app-id: ${{ secrets.ISSUEOPS_APP_ID }}
27+
private-key: ${{ secrets.ISSUEOPS_APP_PEM_FILE }}
28+
owner: ${{ github.repository_owner }}
29+
30+
- name: Process IssueOps Request
31+
id: process
32+
uses: githubschool/gh-github-intermediate-issueops@main
33+
with:
34+
github_token: ${{ steps.token.outputs.token }}
35+
workspace: ${{ github.workspace }}

__tests__/actions.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ jest.unstable_mockModule('@octokit/rest', async () => {
1818
}
1919
})
2020

21+
const issues_addLabels: jest.SpiedFunction<
22+
typeof import('../src/github/issues.js').addLabels
23+
> = jest.fn()
2124
const issues_complete: jest.SpiedFunction<
2225
typeof import('../src/github/issues.js').complete
2326
> = jest.fn()
@@ -63,6 +66,7 @@ const users_removeUsers: jest.SpiedFunction<
6366

6467
jest.unstable_mockModule('../src/github/issues.js', () => {
6568
return {
69+
addLabels: issues_addLabels,
6670
complete: issues_complete,
6771
generateMessage: issues_generateMessage
6872
}
@@ -207,6 +211,7 @@ describe('actions', () => {
207211

208212
expect(teams_create).toHaveBeenCalled()
209213
expect(repos_create).toHaveBeenCalled()
214+
expect(issues_addLabels).toHaveBeenCalled()
210215
expect(issues_complete).toHaveBeenCalled()
211216
})
212217
})

badges/coverage.svg

Lines changed: 1 addition & 1 deletion
Loading

dist/github/issues.d.ts

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/actions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ export async function create(
4040
await repos.configure(request, user, repo, team)
4141
}
4242

43+
// Add the provisioned label.
44+
await issues.addLabels(payload.issue, ['provisioned'])
45+
4346
// Comment on the issue with the summary.
4447
await issues.complete(request, payload.issue)
4548

src/github/issues.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,3 +350,29 @@ export function generateMessage(request: ClassRequest): string {
350350

351351
throw new Error(`Invalid Action: ${request.action}`)
352352
}
353+
354+
/**
355+
* Adds one or more labels to an issue.
356+
*
357+
* @param issue Issue
358+
* @param labels Labels
359+
*/
360+
export async function addLabels(
361+
issue: IssueCommentEvent['issue'] | IssuesEvent['issue'],
362+
labels: string[]
363+
): Promise<void> {
364+
core.info(`Adding Labels to Issue: #${issue.number}`)
365+
366+
// Create the authenticated Octokit client.
367+
const token: string = core.getInput('github_token', { required: true })
368+
const octokit = github.getOctokit(token)
369+
370+
await octokit.rest.issues.addLabels({
371+
issue_number: issue.number,
372+
owner: Common.OWNER,
373+
repo: Common.ISSUEOPS_REPO,
374+
labels
375+
})
376+
377+
core.info(`Added Labels to Issue: #${issue.number}`)
378+
}

0 commit comments

Comments
 (0)