.NET: [Bug]: Custom ChatMessageStore Cannot be used #1430
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Label issues | |
| on: | |
| issues: | |
| types: | |
| - reopened | |
| - opened | |
| jobs: | |
| label_issues: | |
| name: "Issue: add labels" | |
| if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - uses: actions/github-script@v8 | |
| with: | |
| github-token: ${{ secrets.GH_ACTIONS_PR_WRITE }} | |
| script: | | |
| // Get the issue body and title | |
| const body = context.payload.issue.body | |
| let title = context.payload.issue.title | |
| // Define the labels array | |
| let labels = [] | |
| // Check if the issue author is in the agentframework-developers team | |
| let isTeamMember = false | |
| try { | |
| const teamMembership = await github.rest.teams.getMembershipForUserInOrg({ | |
| org: context.repo.owner, | |
| team_slug: process.env.TEAM_NAME, | |
| username: context.payload.issue.user.login | |
| }) | |
| console.log("Team Membership Data:", teamMembership); | |
| isTeamMember = teamMembership.data.state === 'active' | |
| } catch (error) { | |
| // User is not in the team or team doesn't exist | |
| console.error("Error fetching team membership:", error); | |
| isTeamMember = false | |
| } | |
| // Only add triage label if the author is not in the team | |
| if (!isTeamMember) { | |
| labels.push("triage") | |
| } | |
| // Helper function to extract field value from issue form body | |
| // Issue forms format fields as: ### Field Name\n\nValue | |
| function getFormFieldValue(body, fieldName) { | |
| if (!body) return null | |
| const regex = new RegExp(`###\\s*${fieldName}\\s*\\n\\n([^\\n#]+)`, 'i') | |
| const match = body.match(regex) | |
| return match ? match[1].trim() : null | |
| } | |
| // Check for language from issue form dropdown first | |
| const languageField = getFormFieldValue(body, 'Language') | |
| let languageLabelAdded = false | |
| if (languageField) { | |
| if (languageField === 'Python') { | |
| labels.push("python") | |
| languageLabelAdded = true | |
| } else if (languageField === '.NET') { | |
| labels.push(".NET") | |
| languageLabelAdded = true | |
| } | |
| // 'None / Not Applicable' - don't add any language label | |
| } | |
| // Fallback: Check if the body or the title contains the word 'python' (case-insensitive) | |
| // Only if language wasn't already determined from the form field | |
| if (!languageLabelAdded) { | |
| if ((body != null && body.match(/python/i)) || (title != null && title.match(/python/i))) { | |
| // Add the 'python' label to the array | |
| labels.push("python") | |
| } | |
| // Check if the body or the title contains the words 'dotnet', '.net', 'c#' or 'csharp' (case-insensitive) | |
| if ((body != null && body.match(/\.net/i)) || (title != null && title.match(/\.net/i)) || | |
| (body != null && body.match(/dotnet/i)) || (title != null && title.match(/dotnet/i)) || | |
| (body != null && body.match(/C#/i)) || (title != null && title.match(/C#/i)) || | |
| (body != null && body.match(/csharp/i)) || (title != null && title.match(/csharp/i))) { | |
| // Add the '.NET' label to the array | |
| labels.push(".NET") | |
| } | |
| } | |
| // Check for issue type from issue form dropdown | |
| const issueTypeField = getFormFieldValue(body, 'Type of Issue') | |
| if (issueTypeField) { | |
| if (issueTypeField === 'Bug') { | |
| labels.push("bug") | |
| } else if (issueTypeField === 'Feature Request') { | |
| labels.push("enhancement") | |
| } else if (issueTypeField === 'Question') { | |
| labels.push("question") | |
| } | |
| } | |
| // Add the labels to the issue (only if there are labels to add) | |
| if (labels.length > 0) { | |
| github.rest.issues.addLabels({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| labels: labels | |
| }); | |
| } | |
| env: | |
| TEAM_NAME: ${{ secrets.DEVELOPER_TEAM }} |