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

[Feature] Create GitHub workflow to assign issues to users on comment 'take' #42

Closed
JuanPabloDiaz opened this issue Sep 7, 2024 · 0 comments
Labels
enhancement New feature or request 🔒 locked

Comments

@JuanPabloDiaz
Copy link
Owner

JuanPabloDiaz commented Sep 7, 2024

Description

Users should be able to comment "take" on an issue to be auto-assigned the issue.

This creates a good experience for OSS users. They can grab an issue and it will make sure nobody else is working on it.

// .github/workflows/auto-assign-issues.yml

# This workflow has been inspired by https://github.com/MrPowers/quinn/blob/main/.github/workflows/assign-on-comment.yml

name: Auto Assign Issues On Comment

on:
  issue_comment:
    types: [created]

permissions:
  issues: write

jobs:
  auto-assign:
    runs-on: ubuntu-latest
    if: (!github.event.issue.pull_request) && github.event.comment.body == 'take'
    concurrency:
      # Only run one a time per user
      group: ${{ github.actor }}-auto-assign-issue
    steps:
      - name: Check if issue can be assigned
        id: check-assignee
        run: |
          # Check if the user is already assigned to the issue
          RESPONSE=$(curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -LI https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees/${{ github.event.comment.user.login }} -o /dev/null -w '%{http_code}' -s)
          echo "HTTP_CODE=$RESPONSE" >> $GITHUB_ENV

      - name: Assign issue to commenter
        if: env.HTTP_CODE == '204'
        run: |
          # Assign the issue to the user who commented 'take'
          echo "Assigning issue #${{ github.event.issue.number }} to @${{ github.event.comment.user.login }}"
          curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"assignees": ["${{ github.event.comment.user.login }}"]}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Log failure to assign
        if: env.HTTP_CODE != '204'
        run: |
          # Log the failure to assign the issue
          echo "Issue #${{ github.event.issue.number }} cannot be assigned to @${{ github.event.comment.user.login }}. HTTP response code: ${{ env.HTTP_CODE }}"
@JuanPabloDiaz JuanPabloDiaz added the enhancement New feature or request label Sep 7, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Sep 7, 2024
@JuanPabloDiaz JuanPabloDiaz changed the title [Feature] Auto Assign Issues On Comment [Feature] Create GitHub workflow to assign issues to users on comment 'take' Sep 7, 2024
Repository owner deleted a comment from github-actions bot Sep 7, 2024
Repository owner deleted a comment from github-actions bot Sep 7, 2024
@JuanPabloDiaz JuanPabloDiaz closed this as not planned Won't fix, can't repro, duplicate, stale Oct 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request 🔒 locked
Projects
None yet
Development

No branches or pull requests

1 participant