Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assign members of a GitHub team handle in addition of individuals #52

Closed
julioz opened this issue Jul 20, 2023 · 3 comments · Fixed by #63
Closed

Assign members of a GitHub team handle in addition of individuals #52

julioz opened this issue Jul 20, 2023 · 3 comments · Fixed by #63
Assignees
Labels
enhancement New feature or request

Comments

@julioz
Copy link

julioz commented Jul 20, 2023

First of all, thank you very much for open sourcing this action. It has potential to replace one of our internally homegrown workflows.

Here's my request:
Instead of assigning myself to the issue, I'd like the action to support setting a GitHub team handle as assignee and assign the members of that team instead.

@zkoppert zkoppert added the enhancement New feature or request label Jul 20, 2023
@zkoppert
Copy link
Member

Thanks for opening this issue! The assignee part of this workflow action comes from a different GitHub action and currently GitHub issues don't support assigning groups.

By way of work around, you use the GitHub API to retrieve the members of the team and then put them in a comma separated string that you provide as the assignee. That might look something like this where ORG is your organization name and TEAM_SLUG is the name of the team:

name: Monthly issue metrics
on:
  workflow_dispatch:
  schedule:
    - cron: '3 2 1 * *'

permissions:
  issues: write

jobs:
  build:
    name: issue metrics
    runs-on: ubuntu-latest
    
    steps:

    - name: Get dates for last month
      shell: bash
      run: |
        # Get the current date
        current_date=$(date +'%Y-%m-%d')

        # Calculate the previous month
        previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d')

        # Extract the year and month from the previous date
        previous_year=$(date -d "$previous_date" +'%Y')
        previous_month=$(date -d "$previous_date" +'%m')

        # Calculate the first day of the previous month
        first_day=$(date -d "$previous_year-$previous_month-01" +'%Y-%m-%d')

        # Calculate the last day of the previous month
        last_day=$(date -d "$first_day +1 month -1 day" +'%Y-%m-%d')

        echo "$first_day..$last_day"
        echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"

    - name: Run issue-metrics tool
      uses: github/issue-metrics@v2
      env:
        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SEARCH_QUERY: 'repo:owner/repo is:issue created:${{ env.last_month }} -reason:"not planned"'

    - name: Get user names from team
      run: |
          teamMembers="$(gh api /orgs/ORG/teams/TEAM_SLUG/members | jq -r '.[].login' | paste -sd, -)"
          echo 'TEAM_MEMBERS='$teamMembers >> $GITHUB_ENV
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

    - name: Create issue
      uses: peter-evans/create-issue-from-file@v4
      with:
        title: Monthly issue metrics report
        token: ${{ secrets.GITHUB_TOKEN }}
        content-filepath: ./issue_metrics.md
        assignees: ${{ env.TEAM_MEMBERS }} 

Hope that helps! Please feel free to reopen if you want to troubleshoot that or need more support.

@julioz
Copy link
Author

julioz commented Jul 21, 2023

@zkoppert Thanks, that makes sense. I feel like it could be at least a good addition to the README pointing other users to that "workaround".

@zkoppert zkoppert reopened this Jul 21, 2023
@zkoppert
Copy link
Member

Reopening to add this to the documentation for others as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants