Skip to content

Add Github Integration #6

@adamfisher

Description

@adamfisher

This issue tracks the implementation of an integration for GitHub in Elsa Workflows. The module should allow workflows to interact with GitHub, supporting issue tracking, repository management, pull requests, and event monitoring.

Tasks

  • Create a new module: Elsa.Integrations.GitHub

  • Implement Workflow Activities:

    • AddAssignees - Adds assignees to an issue or pull request.
    • AddLabels - Adds labels to an issue or pull request.
    • CreateComment - Creates a new comment.
    • CreateIssue - Creates a new issue.
    • DeleteAssignees - Removes assignees from an issue or pull request.
    • DeleteComment - Removes an existing comment.
    • DeleteLabel - Removes a label from an issue.
    • DeleteIssue - Removes an existing issue.
    • ExecuteGraphQLQuery - Performs an arbitrary authorized GraphQL query.
    • GetBranch - Retrieves details of an existing branch.
    • GetComment - Retrieves details of an existing comment.
    • GetGist - Retrieves details of an existing gist.
    • GetMilestone - Retrieves details of an existing milestone.
    • GetPullRequest - Retrieves details of an existing pull request.
    • GetRelease - Retrieves details of an existing release.
    • GetRepository - Retrieves details of an existing repository.
    • GetUser - Retrieves details of an existing user.
    • GetAssignee - Retrieves details of an existing assignee.
    • GetIssue - Retrieves details of an existing issue.
    • GetOrganization - Retrieves details of an existing organization.
    • SearchAssignees - Searches for assignees or lists them all.
    • SearchBranches - Searches for branches or lists them all.
    • SearchComments - Searches for comments or lists them all.
    • SearchGists - Searches for gists or lists them all.
    • SearchIssues - Searches for issues or lists them all.
    • SearchMilestones - Searches for milestones or lists them all.
    • SearchOrganizationMembers - Searches for organization members or lists them all.
    • SearchPullRequests - Searches for pull requests or lists them all.
    • SearchReleases - Searches for releases or lists them all.
    • UpdateComment - Updates an existing comment.
    • UpdateIssue - Updates an existing issue.
    • WatchBranches - Triggers when a new branch is created.
    • WatchCommitComments - Triggers when a new comment on a commit is created.
    • WatchCommits - Triggers when a new commit is created.
    • WatchForks - Triggers when a new fork is created.
    • WatchGists - Triggers when a gist is created or updated.
    • WatchIssues - Triggers when an issue is created or updated.
    • WatchLabels - Triggers when a new label is created.
    • WatchMilestones - Triggers when a milestone is created or updated.
    • WatchOrganizations - Triggers when a new organization is created.
    • WatchPullRequests - Triggers when a pull request is created or updated.
    • WatchReleases - Triggers when a new release is created.
    • WatchRepositories - Triggers when a new repository is created.
  • Add Unit Tests

  • Add Documentation (README.md)

References

Notes

  • This should follow the standard structure used for Elsa Integrations.
  • The integration should support authentication via OAuth 2.0 and personal access tokens.
  • Includes REST and GraphQL API support for flexible data retrieval.

Contributor Guidelines

If you're interested in working on this issue:

  1. Comment below to claim it.
  2. Follow the CONTRIBUTING.md guide.
  3. Submit a PR referencing this issue.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions