Skip to content

Commit 1ecde92

Browse files
authored
Merge pull request #32 from codacy/meta/update-jira-actions-2020-08-5_12-50
meta: Update the common files from meta-repo
2 parents 9c9c325 + bc1b4fc commit 1ecde92

File tree

3 files changed

+213
-0
lines changed

3 files changed

+213
-0
lines changed

.github/workflows/comment_issue.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Comment issue on Jira
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
7+
jobs:
8+
jira:
9+
env:
10+
JIRA_CREATE_COMMENT_AUTO: ${{ secrets.JIRA_CREATE_COMMENT_AUTO }}
11+
runs-on: ubuntu-latest
12+
steps:
13+
14+
- name: Jira Login
15+
if: env.JIRA_CREATE_COMMENT_AUTO == 'true'
16+
id: login
17+
uses: atlassian/[email protected]
18+
env:
19+
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
20+
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
21+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
22+
23+
- name: Extract Jira number
24+
if: env.JIRA_CREATE_COMMENT_AUTO == 'true'
25+
id: extract_jira_number
26+
uses: actions/[email protected]
27+
env:
28+
JIRA_PROJECT: ${{ secrets.JIRA_PROJECT }}
29+
GITHUB_TITLE: ${{ github.event.issue.title }}
30+
with:
31+
script: |
32+
const jiraTaskRegex = new RegExp(`\\\[(${process.env.JIRA_PROJECT}-[0-9]+?)\\\]`)
33+
return process.env.GITHUB_TITLE.match(jiraTaskRegex)[1]
34+
result-encoding: string
35+
36+
- name: Jira Add comment on issue
37+
if: env.JIRA_CREATE_COMMENT_AUTO == 'true'
38+
id: add_comment_jira_issue
39+
uses: atlassian/[email protected]
40+
with:
41+
issue: ${{ steps.extract_jira_number.outputs.result }}
42+
comment: |
43+
GitHub Comment : ${{ github.event.comment.user.login }}
44+
{quote}${{ github.event.comment.body }}{quote}
45+
----
46+
{panel}
47+
_[Github permalink |${{ github.event.comment.html_url }}]_
48+
{panel}

.github/workflows/create_issue.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Create issue on Jira
2+
3+
on:
4+
issues:
5+
types: [opened]
6+
7+
jobs:
8+
jira:
9+
env:
10+
JIRA_CREATE_ISSUE_AUTO: ${{ secrets.JIRA_CREATE_ISSUE_AUTO }}
11+
runs-on: ubuntu-latest
12+
steps:
13+
14+
- name: Jira Login
15+
if: env.JIRA_CREATE_ISSUE_AUTO == 'true'
16+
id: login
17+
uses: atlassian/[email protected]
18+
env:
19+
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
20+
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
21+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
22+
23+
- name: Jira Create issue
24+
if: env.JIRA_CREATE_ISSUE_AUTO == 'true'
25+
id: create_jira_issue
26+
uses: atlassian/[email protected]
27+
with:
28+
project: ${{ secrets.JIRA_PROJECT }}
29+
issuetype: ${{ secrets.JIRA_ISSUE_TYPE }}
30+
summary: "[GH#${{ github.event.issue.number }}] ${{ github.event.issue.title }}"
31+
description: |
32+
${{ github.event.issue.body }}
33+
----
34+
{panel}
35+
_[Github permalink |${{ github.event.issue.html_url }}]_
36+
{panel}
37+
38+
- name: Update Jira issue
39+
if: env.JIRA_CREATE_ISSUE_AUTO == 'true' && env.JIRA_UPDATE_ISSUE_BODY != ''
40+
env:
41+
JIRA_UPDATE_ISSUE_BODY: ${{ secrets.JIRA_UPDATE_ISSUE_BODY }}
42+
run: >
43+
curl
44+
-u ${{ secrets.JIRA_USER_EMAIL }}:${{ secrets.JIRA_API_TOKEN }}
45+
-X PUT
46+
-H 'Content-Type: application/json'
47+
-d '${{ env.JIRA_UPDATE_ISSUE_BODY }}'
48+
${{ secrets.JIRA_BASE_URL }}/rest/api/2/issue/${{ steps.create_jira_issue.outputs.issue }}
49+
50+
- name: Update GitHub issue
51+
if: env.JIRA_CREATE_ISSUE_AUTO == 'true'
52+
uses: actions/[email protected]
53+
env:
54+
JIRA_ISSUE_NUMBER: ${{ steps.create_jira_issue.outputs.issue }}
55+
GITHUB_ORIGINAL_TITLE: ${{ github.event.issue.title }}
56+
JIRA_ISSUE_LABEL: ${{ secrets.JIRA_ISSUE_LABEL }}
57+
with:
58+
github-token: ${{secrets.GITHUB_TOKEN}}
59+
script: |
60+
const newTitle = `[${process.env.JIRA_ISSUE_NUMBER}] ${process.env.GITHUB_ORIGINAL_TITLE}`
61+
github.issues.update({
62+
issue_number: context.issue.number,
63+
owner: context.repo.owner,
64+
repo: context.repo.repo,
65+
title: newTitle
66+
})
67+
github.issues.addLabels({
68+
issue_number: context.issue.number,
69+
owner: context.repo.owner,
70+
repo: context.repo.repo,
71+
labels: [process.env.JIRA_ISSUE_LABEL]
72+
})
73+
74+
75+
- name: Add comment after sync
76+
if: env.JIRA_CREATE_ISSUE_AUTO == 'true'
77+
uses: actions/[email protected]
78+
with:
79+
github-token: ${{secrets.GITHUB_TOKEN}}
80+
script: |
81+
github.issues.createComment({
82+
issue_number: context.issue.number,
83+
owner: context.repo.owner,
84+
repo: context.repo.repo,
85+
body: 'Internal ticket created : [${{ steps.create_jira_issue.outputs.issue }}](${{ secrets.JIRA_BASE_URL }}/browse/${{ steps.create_jira_issue.outputs.issue }})'
86+
})
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Create issue on Jira when labeled with JIRA_ISSUE_LABEL
2+
3+
on:
4+
issues:
5+
types: [labeled]
6+
7+
jobs:
8+
jira:
9+
env:
10+
JIRA_ISSUE_LABEL: ${{ secrets.JIRA_ISSUE_LABEL }}
11+
runs-on: ubuntu-latest
12+
steps:
13+
14+
- name: Jira Login
15+
if: github.event.label.name == env.JIRA_ISSUE_LABEL
16+
id: login
17+
uses: atlassian/[email protected]
18+
env:
19+
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
20+
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
21+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
22+
23+
- name: Jira Create issue
24+
if: github.event.label.name == env.JIRA_ISSUE_LABEL
25+
id: create_jira_issue
26+
uses: atlassian/[email protected]
27+
with:
28+
project: ${{ secrets.JIRA_PROJECT }}
29+
issuetype: ${{ secrets.JIRA_ISSUE_TYPE }}
30+
summary: "[GH#${{ github.event.issue.number }}] ${{ github.event.issue.title }}"
31+
description: |
32+
${{ github.event.issue.body }}
33+
----
34+
{panel}
35+
_[Github permalink |${{ github.event.issue.html_url }}]_
36+
{panel}
37+
38+
- name: Update Jira issue
39+
if: github.event.label.name == env.JIRA_ISSUE_LABEL && env.JIRA_UPDATE_ISSUE_BODY != ''
40+
env:
41+
JIRA_UPDATE_ISSUE_BODY: ${{ secrets.JIRA_UPDATE_ISSUE_BODY }}
42+
run: >
43+
curl
44+
-u ${{ secrets.JIRA_USER_EMAIL }}:${{ secrets.JIRA_API_TOKEN }}
45+
-X PUT
46+
-H 'Content-Type: application/json'
47+
-d '${{ env.JIRA_UPDATE_ISSUE_BODY }}'
48+
${{ secrets.JIRA_BASE_URL }}/rest/api/2/issue/${{ steps.create_jira_issue.outputs.issue }}
49+
50+
- name: Change Title
51+
if: github.event.label.name == env.JIRA_ISSUE_LABEL
52+
uses: actions/[email protected]
53+
env:
54+
JIRA_ISSUE_NUMBER: ${{ steps.create_jira_issue.outputs.issue }}
55+
GITHUB_ORIGINAL_TITLE: ${{ github.event.issue.title }}
56+
with:
57+
github-token: ${{secrets.GITHUB_TOKEN}}
58+
script: |
59+
const newTitle = `[${process.env.JIRA_ISSUE_NUMBER}] ${process.env.GITHUB_ORIGINAL_TITLE}`
60+
github.issues.update({
61+
issue_number: context.issue.number,
62+
owner: context.repo.owner,
63+
repo: context.repo.repo,
64+
title: newTitle
65+
})
66+
67+
- name: Add comment after sync
68+
if: github.event.label.name == env.JIRA_ISSUE_LABEL
69+
uses: actions/[email protected]
70+
with:
71+
github-token: ${{secrets.GITHUB_TOKEN}}
72+
script: |
73+
github.issues.createComment({
74+
issue_number: context.issue.number,
75+
owner: context.repo.owner,
76+
repo: context.repo.repo,
77+
body: 'Internal ticket created : [${{ steps.create_jira_issue.outputs.issue }}](${{ secrets.JIRA_BASE_URL }}/browse/${{ steps.create_jira_issue.outputs.issue }})'
78+
})
79+

0 commit comments

Comments
 (0)