Skip to content

feat: enhance GitHub PR resource with automatic build URLs - #15

Merged
ujala-singh merged 1 commit into
mainfrom
feat/enhanced-github-pr-resource
Jul 13, 2026
Merged

feat: enhance GitHub PR resource with automatic build URLs#15
ujala-singh merged 1 commit into
mainfrom
feat/enhanced-github-pr-resource

Conversation

@ujala-singh

Copy link
Copy Markdown
Owner

Add comprehensive enhancements to improve integration with Concourse CI:

  1. Automatic Build URL Generation:

    • UpdateCommitStatus now auto-generates Concourse build URL when target_url is empty
    • Constructs URL from ATC_EXTERNAL_URL and BUILD_ID environment variables
    • Enables clickable GitHub status checks linking back to pipeline builds
  2. Environment Variable Expansion:

    • Add safeExpandEnv() function for secure environment variable expansion
    • Supports Concourse build metadata variables: BUILD_ID, BUILD_NAME, BUILD_JOB_NAME, BUILD_PIPELINE_NAME, BUILD_TEAM_NAME, ATC_EXTERNAL_URL
    • Applied to target_url, context, and comment fields for dynamic values
  3. Enhanced Configuration Parameters:

    • Add base_context support for customizable status check context prefix
    • Add description_file support for reading status description from file
    • Fix delete_previous_comments type from string to boolean
  4. Comment Management:

    • Implement DeletePreviousComments() using GitHub GraphQL + REST API
    • Queries user's previous comments via V4 API
    • Deletes matching comments via V3 API to keep PR conversations clean

Changes:

  • models/github.go: Auto URL generation, DeletePreviousComments()
  • pr/out.go: safeExpandEnv(), enhanced parameter handling
  • pr/models.go: Updated OutParams with new fields
  • pr/helpers_test.go: Fixed test for boolean delete_previous_comments

All 51 tests passing with improved coverage.

Add comprehensive enhancements to improve integration with Concourse CI:

1. Automatic Build URL Generation:
   - UpdateCommitStatus now auto-generates Concourse build URL when target_url is empty
   - Constructs URL from ATC_EXTERNAL_URL and BUILD_ID environment variables
   - Enables clickable GitHub status checks linking back to pipeline builds

2. Environment Variable Expansion:
   - Add safeExpandEnv() function for secure environment variable expansion
   - Supports Concourse build metadata variables:
     BUILD_ID, BUILD_NAME, BUILD_JOB_NAME, BUILD_PIPELINE_NAME,
     BUILD_TEAM_NAME, ATC_EXTERNAL_URL
   - Applied to target_url, context, and comment fields for dynamic values

3. Enhanced Configuration Parameters:
   - Add base_context support for customizable status check context prefix
   - Add description_file support for reading status description from file
   - Fix delete_previous_comments type from string to boolean

4. Comment Management:
   - Implement DeletePreviousComments() using GitHub GraphQL + REST API
   - Queries user's previous comments via V4 API
   - Deletes matching comments via V3 API to keep PR conversations clean

Changes:
- models/github.go: Auto URL generation, DeletePreviousComments()
- pr/out.go: safeExpandEnv(), enhanced parameter handling
- pr/models.go: Updated OutParams with new fields
- pr/helpers_test.go: Fixed test for boolean delete_previous_comments

All 51 tests passing with improved coverage.
@ujala-singh
ujala-singh merged commit 7975baa into main Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant