Overview
A GitHub App provides secure, granular access to your repositories and enables powerful bidirectional synchronization between Ordo and GitHub: Task to GitHub:- Automatically create GitHub issues when you create tasks
- Update issue status and priority labels when you change tasks
- Add comments linking to Ordo tasks
- Close/reopen issues based on task status changes
- Create tasks from GitHub issues
- Sync issue labels (priority, status) to task properties
- Link pull requests to tasks automatically
- Update task status based on branch activity (push, PR open/merge)
- Sync GitHub labels to Ordo task labels
- Branch push → Move task to “in-progress”
- PR opened → Move task to “in-review”
- PR merged → Move task to “done”
GitHub Apps are more secure than personal access tokens and provide fine-grained permission control.
Step 1: Create a GitHub App
1
Navigate to GitHub App SettingsGo to GitHub Developer Settings and click “New GitHub App”.
2
Configure Basic InformationFill in the basic app information:
- GitHub App name:
Ordo-[your-instance-name](must be unique across GitHub) - Description:
Ordo project management integration - Homepage URL: Your planned Ordo instance URL (e.g.,
https://Ordo.yourdomain.com) - Webhook URL:
https://your-Ordo-instance.com/api/github-integration/webhook - Webhook secret: Generate a secure random string (save this for later)
3
Set Repository PermissionsConfigure the following permissions:
Pull Requests permission is optional but recommended for full integration features. Without it, you won’t be able to automatically link PRs to tasks or track PR status changes.
4
Subscribe to Webhook EventsThis step is required for proper integration. Subscribe to these events:
- Issues - To sync issues with tasks (opened, edited, closed, labeled, unlabeled)
- Issue comments - To track comments on linked issues
- Pull requests - To link PRs to tasks and update task status (opened, closed, reopened, merged)
- Push - To automatically update task status based on branch activity
Recommended: Subscribe to all four event types for full integration features:
- Issues: Creates tasks from issues and syncs status/labels
- Issue comments: Tracks GitHub discussions
- Pull requests: Auto-updates task status when PRs are opened/merged
- Push: Moves tasks to “in-progress” when branches are pushed
5
Create the AppClick “Create GitHub App” to create your app. You’ll be redirected to the app settings page.
Step 2: Generate Credentials
1
Generate and Download Private Key
- Scroll down to the “Private keys” section
- Click “Generate a private key”
- Download the
.pemfile - you’ll need its contents for configuration
2
Note Your App InformationFrom the app settings page, note down these important values:
- App ID (shown at the top of the page)
- Webhook Secret (the one you created earlier)
- Private Key (contents of the downloaded
.pemfile)
GITHUB_OAUTH_CLIENT_ID / GITHUB_OAUTH_CLIENT_SECRET (see GitHub SSO).You need App ID, private key, and webhook secret for the configuration step.
Step 3: Install the App
1
Install on Your Account/Organization
- Go to your GitHub App settings page
- Click “Install App” in the left sidebar
- Choose your account or organization
- Select repositories:
- All repositories (if you want integration available for all repos)
- Selected repositories (choose specific repos)
2
Verify InstallationAfter installation, you should see your app listed in:
- Your GitHub App installations
- The repository’s Settings → Integrations & services (for organization repos)
Security Best Practices
App Configuration
- Use descriptive names: Make it clear the app is for Ordo integration
- Limit permissions: Only grant the minimum required permissions
- Repository scope: Install only on repositories that need integration
Credential Management
- Secure storage: Store credentials in environment variables or secret management systems
- Regular rotation: Generate new private keys periodically
- Access control: Limit who has access to the GitHub App settings
Common Issues
App Name Already Taken
If your desired app name is taken, try:- Adding your organization name:
Ordo-mycompany - Adding a timestamp:
Ordo-mycompany-2024 - Using a different naming convention:
mycompany-Ordo
Webhook URL Not Accessible
Ensure your Ordo instance is:- Publicly accessible on the internet
- Using HTTPS (GitHub requires this for webhooks)
- Not behind authentication that would block GitHub’s webhook calls
Permission Issues
Double-check that you’ve granted:- Write access to Issues (not just Read)
- Read access to Pull Requests (for PR linking)
- Read access to Metadata and Contents
- Selected the correct repositories during installation
Webhook Events Not Working
If automatic synchronization isn’t happening:- Verify all webhook events are subscribed (Issues, Issue comments, Pull requests, Push)
- Check webhook deliveries in GitHub App settings for failed deliveries
- Ensure your webhook URL is publicly accessible and using HTTPS
Next Steps
Now that your GitHub App is created and configured:- Deploy Ordo - Deploy your Ordo instance with the GitHub App credentials
- Configure GitHub Integration - Complete the integration setup in your deployed Ordo instance
- Connect Repositories - Link your projects to GitHub repositories
Important: Have your GitHub App credentials ready before deployment. You’ll need to set them as environment variables during the deployment process.
Need help? Check our troubleshooting guide.
