Skip to content

Create Branch from Issue #37

Create Branch from Issue

Create Branch from Issue #37

name: Sync GitHub Issues with Jira and Manage Assignees
on:
issues:
types: [opened, assigned, unassigned]
jobs:
manage_issues_and_assignees:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Jira integration
env:
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_BASE_URL: ${{ secrets.JIRA_BASEURL }}
JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }}
JIRA_PROJECT_KEY: ${{ secrets.JIRA_PROJECT_KEY }}
run: |
ISSUE_TITLE="${{ github.event.issue.title }}"
ISSUE_BODY="${{ github.event.issue.body }}"
ISSUE_ASSIGNEE="${{ github.event.issue.assignee.login }}"
JIRA_ASSIGNEE_ID=$(curl -s -u $JIRA_EMAIL:$JIRA_API_TOKEN "$JIRA_BASE_URL/rest/api/3/user/search?query=$ISSUE_ASSIGNEE" | jq -r '.[0].accountId')
# Create or update Jira issue
if [ "${{ github.event.action }}" == 'opened' ]; then
RESPONSE=$(curl -s -u $JIRA_EMAIL:$JIRA_API_TOKEN -X POST -H "Content-Type: application/json" \
--data '{
"fields": {
"project": {"key": "$JIRA_PROJECT_KEY"},
"summary": "$ISSUE_TITLE",
"description": "$ISSUE_BODY",
"issuetype": {"name": "Task"},
"assignee": {"id": "$JIRA_ASSIGNEE_ID"}
}
}' "$JIRA_BASE_URL/rest/api/2/issue/")
echo "Jira API response: $RESPONSE"
fi
# Sync assignee
if [ "${{ github.event.action }}" == 'assigned' ] || [ "${{ github.event.action }}" == 'unassigned' ]; then
curl -s -u $JIRA_EMAIL:$JIRA_API_TOKEN -X PUT -H "Content-Type: application/json" \
--data '{"update": {"assignee": [{"set": {"id": "$JIRA_ASSIGNEE_ID"}}]}}' "$JIRA_BASE_URL/rest/api/2/issue/${{ env.JIRA_ISSUE_KEY }}"