Skip to content

For new worklog report use user defined start of work day #15

For new worklog report use user defined start of work day

For new worklog report use user defined start of work day #15

name: Issue Responder
on:
workflow_dispatch:
inputs:
ticket_number:
description: 'Ticket Number'
required: true
type: integer
ticket_type:
description: 'Ticket Type'
required: true
type: choice
options:
- issues
- discussions
default: issues
avoidUpdate:
description: 'Do not update Resource center'
required: false
type: boolean
default: false
updateDocsOnly:
description: 'Do not add comments to the ticket'
required: false
type: boolean
default: false
issues:
types: [opened]
issue_comment:
types: [created]
discussion:
types: [created]
discussion_comment:
types: [created]
permissions:
issues: write
discussions: write
statuses: write
jobs:
run-script:
runs-on: ubuntu-latest
steps:
- name: Check if comment is from bot user
run: |
if [[ "${{ github.actor }}" == "github-actions[bot]" ]] && [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
echo "Comment was made by the GitHub Actions bot. Exiting without running the script."
exit 0
fi
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Download script
run: |
curl -o github.mjs https://bot.jiraassistant.com/actions/github/github.mjs
- name: Identify Action
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
echo "TICKET_TYPE=${{ github.event.inputs.ticket_type }}" >> $GITHUB_ENV
echo "TICKET_NUMBER=${{ github.event.inputs.ticket_number }}" >> $GITHUB_ENV
elif [[ "${{ github.event_name }}" == "discussion_comment" ]] || [[ "${{ github.event_name }}" == "discussion" ]]; then
echo "TICKET_TYPE=discussions" >> $GITHUB_ENV
echo "TICKET_NUMBER=${{ github.event.discussion.number }}" >> $GITHUB_ENV
else
echo "TICKET_TYPE=issues" >> $GITHUB_ENV
echo "TICKET_NUMBER=${{ github.event.issue.number }}" >> $GITHUB_ENV
fi
- name: Retrieve collaborators
id: get-collaborators
run: |
if [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
collaborators=$(curl -s -H "Authorization: token ${{ github.token }}" \
"https://api.github.com/repos/${{ github.repository }}/collaborators" | \
jq -r '.[].login')
echo "${collaborators}" > collaborators.txt
fi
- name: Check if comment is from collaborator
run: |
if [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
COMMENT_USER="${{ github.actor }}"
if grep -q "$COMMENT_USER" collaborators.txt; then
echo "Comment was made by a collaborator."
echo "avoidComments=true" >> $GITHUB_ENV
node github.mjs --ticket "$TICKET_NUMBER" \
--ticketType "$TICKET_TYPE" \
--repo "${{ github.repository }}" \
--orgId "${{ vars.RESPONDER_ORG_ID }}" \
--botId "${{ vars.RESPONDER_BOT_ID }}" \
--ghToken "${{ github.token }}" \
--authToken "${{ secrets.RESPONDER_TOKEN }}" \
--updateOnly
exit 0
fi
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]] && [[ "${{ github.event.inputs.updateDocsOnly }}" == "true" ]]; then
echo "avoidComments=true" >> $GITHUB_ENV
node github.mjs --ticket "$TICKET_NUMBER" \
--ticketType "$TICKET_TYPE" \
--repo "${{ github.repository }}" \
--orgId "${{ vars.RESPONDER_ORG_ID }}" \
--botId "${{ vars.RESPONDER_BOT_ID }}" \
--ghToken "${{ github.token }}" \
--authToken "${{ secrets.RESPONDER_TOKEN }}" \
--updateOnly
fi
- name: Add comment to ticket
if: env.avoidComments != 'true'
run: |
node github.mjs --testMode "${{ github.event.inputs.avoidUpdate }}" --ticket "$TICKET_NUMBER" \
--ticketType "$TICKET_TYPE" \
--repo "${{ github.repository }}" \
--orgId "${{ vars.RESPONDER_ORG_ID }}" \
--botId "${{ vars.RESPONDER_BOT_ID }}" \
--ghToken "${{ github.token }}" \
--authToken "${{ secrets.RESPONDER_TOKEN }}"