aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Mikula <pavel.mikula@sonarsource.com>2024-11-27 14:29:01 +0100
committerAntoine Vinot <antoine.vinot@sonarsource.com>2024-12-02 15:56:32 +0100
commit6052e1158ab077c740a44967de1fc94e462c9eb0 (patch)
tree470009ec4ea1c2d0e6cba78307cb69c50ecc529e
parent9e45bc16833bb4bd6bec5e17a5dc3234d25c4d51 (diff)
downloadsonar-scanner-cli-6052e1158ab077c740a44967de1fc94e462c9eb0.tar.gz
sonar-scanner-cli-6052e1158ab077c740a44967de1fc94e462c9eb0.zip
Add Jira integration
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md7
-rw-r--r--.github/workflows/PullRequestClosed.yml29
-rw-r--r--.github/workflows/PullRequestCreated.yml29
-rw-r--r--.github/workflows/RequestReview.yml28
-rw-r--r--.github/workflows/SubmitReview.yml30
5 files changed, 123 insertions, 0 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 672fa1f..b29fdba 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,3 +1,10 @@
+<!--
+ Only for standalone PRs without Jira issue in the PR title:
+ * Replace this comment with Epic ID to create a new Task in Jira
+ * Replace this comment with Issue ID to create a new Sub-Task in Jira
+ * Ignore or delete this note to create a new Task in Jira without a parent
+-->
+
Please be aware that we are not actively looking for feature contributions. The truth is that it's extremely difficult for someone outside SonarSource to comply with our roadmap and expectations. Therefore, we typically only accept minor cosmetic changes and typo fixes. If you would like to see a new feature, please create a new thread in the forum ["Suggest new features"](https://community.sonarsource.com/c/suggestions/features).
With that in mind, if you would like to submit a code contribution, make sure that you adhere to the following guidelines and all tests are passing:
diff --git a/.github/workflows/PullRequestClosed.yml b/.github/workflows/PullRequestClosed.yml
new file mode 100644
index 0000000..b50896e
--- /dev/null
+++ b/.github/workflows/PullRequestClosed.yml
@@ -0,0 +1,29 @@
+name: Pull Request Closed
+
+on:
+ pull_request:
+ types: [closed]
+
+jobs:
+ PullRequestMerged_job:
+ name: Pull Request Merged
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ pull-requests: read
+ # For external PR, ticket should be moved manually
+ if: |
+ github.event.pull_request.head.repo.full_name == github.repository
+ && github.event.pull_request.merged
+ steps:
+ - id: secrets
+ uses: SonarSource/vault-action-wrapper@v3
+ with:
+ secrets: |
+ development/kv/data/jira user | JIRA_USER;
+ development/kv/data/jira token | JIRA_TOKEN;
+ - uses: sonarsource/gh-action-lt-backlog/PullRequestClosed@v2
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
+ jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }}
+ jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }}
diff --git a/.github/workflows/PullRequestCreated.yml b/.github/workflows/PullRequestCreated.yml
new file mode 100644
index 0000000..cde6e4c
--- /dev/null
+++ b/.github/workflows/PullRequestCreated.yml
@@ -0,0 +1,29 @@
+name: Pull Request Created
+
+on:
+ pull_request:
+ types: ["opened"]
+
+jobs:
+ PullRequestCreated_job:
+ name: Pull Request Created
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ # For external PR, ticket should be created manually
+ if: |
+ github.event.pull_request.head.repo.full_name == github.repository
+ steps:
+ - id: secrets
+ uses: SonarSource/vault-action-wrapper@v3
+ with:
+ secrets: |
+ development/github/token/{REPO_OWNER_NAME_DASH}-jira token | GITHUB_TOKEN;
+ development/kv/data/jira user | JIRA_USER;
+ development/kv/data/jira token | JIRA_TOKEN;
+ - uses: sonarsource/gh-action-lt-backlog/PullRequestCreated@v2
+ with:
+ github-token: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
+ jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }}
+ jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }}
+ jira-project: SCANCLI
diff --git a/.github/workflows/RequestReview.yml b/.github/workflows/RequestReview.yml
new file mode 100644
index 0000000..5eac0d5
--- /dev/null
+++ b/.github/workflows/RequestReview.yml
@@ -0,0 +1,28 @@
+name: Request review
+
+on:
+ pull_request:
+ types: ["review_requested"]
+
+jobs:
+ RequestReview_job:
+ name: Request review
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ # For external PR, ticket should be moved manually
+ if: |
+ github.event.pull_request.head.repo.full_name == github.repository
+ steps:
+ - id: secrets
+ uses: SonarSource/vault-action-wrapper@v3
+ with:
+ secrets: |
+ development/github/token/{REPO_OWNER_NAME_DASH}-jira token | GITHUB_TOKEN;
+ development/kv/data/jira user | JIRA_USER;
+ development/kv/data/jira token | JIRA_TOKEN;
+ - uses: sonarsource/gh-action-lt-backlog/RequestReview@v2
+ with:
+ github-token: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
+ jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }}
+ jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }}
diff --git a/.github/workflows/SubmitReview.yml b/.github/workflows/SubmitReview.yml
new file mode 100644
index 0000000..d5f22e6
--- /dev/null
+++ b/.github/workflows/SubmitReview.yml
@@ -0,0 +1,30 @@
+name: Submit Review
+
+on:
+ pull_request_review:
+ types: [submitted]
+
+jobs:
+ SubmitReview_job:
+ name: Submit Review
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ pull-requests: read
+ # For external PR, ticket should be moved manually
+ if: |
+ github.event.pull_request.head.repo.full_name == github.repository
+ && (github.event.review.state == 'changes_requested'
+ || github.event.review.state == 'approved')
+ steps:
+ - id: secrets
+ uses: SonarSource/vault-action-wrapper@v3
+ with:
+ secrets: |
+ development/kv/data/jira user | JIRA_USER;
+ development/kv/data/jira token | JIRA_TOKEN;
+ - uses: sonarsource/gh-action-lt-backlog/SubmitReview@v2
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
+ jira-user: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }}
+ jira-token: ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }}