GitHub Integration

What It Enables

Automate your development workflow by connecting Defense Catalyst to GitHub:

Prerequisites

How to Connect

Step 1: Add GitHub Action

  1. In your flow, click “+” to add a step
  2. Search for “GitHub”
  3. Select the action you want (e.g., “Create Issue”)

Step 2: Authenticate with GitHub

  1. Click “Connect” or “+ New Connection”
  2. Click “Sign in with GitHub”
  3. Review permissions requested:
    • Read repository data
    • Write repository data (if needed)
    • Manage issues and pull requests
  4. Click “Authorize”

Step 3: Configure Action

  1. Select organization (if applicable)
  2. Select repository
  3. Configure action-specific settings
  4. Map data from previous steps

Step 4: Test Connection

  1. Click “Test” to verify connection
  2. Check GitHub for results
  3. Verify action completed successfully

Available Triggers

New Issue

When: A new issue is created in repository Use Cases:

Configuration:

New Pull Request

When: A new PR is opened Use Cases:

Configuration:

New Release

When: A new release is published Use Cases:

Configuration:

New Star

When: Repository receives a star Use Cases:

Configuration:

Push to Branch

When: Code is pushed to specific branch Use Cases:

Configuration:

Available Actions

Create Issue

What: Creates a new issue in repository Required Fields:

Optional Fields:

Example:

Title: Bug Report: 
Body: 
Error occurred at 
Details: 

Steps to reproduce:

Update Issue

What: Updates an existing issue Required Fields:

Use Cases:

Close Issue

What: Closes an issue with optional comment Required Fields:

Optional:

Create Pull Request

What: Creates a new pull request Required Fields:

Optional:

Merge Pull Request

What: Merges an approved pull request Required Fields:

Warning: Ensure PR is approved before merging!

Add Comment

What: Adds comment to issue or PR Required Fields:

Use Cases:

Create Branch

What: Creates a new branch Required Fields:

Use Cases:

Create Release

What: Creates a new release Required Fields:

Optional:

Get File Content

What: Retrieves file content from repository Required Fields:

Returns: File content as text

Create/Update File

What: Creates new file or updates existing Required Fields:

Use Cases:

Common Errors & Fixes

“Not Found” or “Repository not found”

Cause: Repository doesn’t exist or no access Fix:

  1. Verify repository name is correct (owner/repo)
  2. Check you have access to repository
  3. For private repos, ensure OAuth app has access
  4. Reconnect GitHub integration

“Resource not accessible by integration”

Cause: Insufficient permissions Fix:

  1. Check required permissions for action
  2. Reconnect with broader permissions
  3. For organizations, check app installation settings
  4. Verify you’re not using fine-grained token with limited scope

“Validation Failed”

Cause: Invalid data in request Fix:

  1. Check required fields are provided
  2. Verify issue/PR numbers are correct
  3. Ensure labels exist in repository
  4. Check assignees are valid users

“Reference already exists”

Cause: Branch or tag name already exists Fix:

  1. Use unique branch/tag names
  2. Check existing branches before creating
  3. Delete old branch if appropriate
  4. Use timestamp in name for uniqueness

“Rate limit exceeded”

Cause: Too many API requests Fix:

  1. Reduce flow execution frequency
  2. Check GitHub rate limits (5000/hour authenticated)
  3. Implement caching where possible
  4. Add delays between requests

“Bad credentials”

Cause: Authentication token expired or invalid Fix:

  1. Go to Connections
  2. Find GitHub connection
  3. Click “Reconnect”
  4. Re-authorize with GitHub

Test Checklist

Tips & Best Practices

Repository Management

Issue Management

Pull Request Automation

Security

Performance

Advanced Patterns

Auto-Label Issues

Trigger: New Issue
Action: Update Issue
  - Add label based on title keywords
  - Assign to team based on label

Release Notification

Trigger: New Release
Actions:
  1. Format release notes
  2. Send to Slack
  3. Update documentation
  4. Notify stakeholders

PR Review Reminder

Trigger: New Pull Request
Actions:
  1. Wait 24 hours
  2. Check if reviewed
  3. If not, send reminder

Issue to Task

Trigger: New Issue with label "task"
Actions:
  1. Create task in project management tool
  2. Link back to GitHub issue
  3. Notify assignee

Automated Changelog

Trigger: Push to main branch
Actions:
  1. Get commit messages
  2. Format as changelog
  3. Update CHANGELOG.md
  4. Commit changes

GitHub API Limits

Rate Limits

Best Practices

Webhook vs Polling

Polling (Default)

Example Use Cases

Bug Report to Issue

Webhook (bug report) → Create GitHub Issue → Notify team

Deploy on Release

New Release → Trigger deployment → Update status

PR Review Automation

New PR → Assign reviewers → Send notifications → Track status

Issue Triage

New Issue → Analyze content → Auto-label → Assign to team

Documentation Updates

Push to docs/ → Update external docs → Notify writers

GitHub Actions vs Defense Catalyst

Use GitHub Actions for:

Use Defense Catalyst for:

Use Both:

Need Help?