Skip to content

Conversation

@sgewirtz1
Copy link

Adds ability to pin GitHub issues via the platform API and configures the dependency dashboard to be pinned by default. This makes the dependency dashboard more visible by pinning it at the top of the repository's Issues page.

Changes:

  • Add isPinned optional parameter to EnsureIssueConfig interface
  • Implement GraphQL mutations for pinning/unpinning issues
  • Add node_id field to GitHub issue schema to support pinning
  • Update GitHub platform ensureIssue() to pin issues when requested
  • Configure dependency dashboard to set isPinned: true by default

The implementation uses GitHub's GraphQL API pinIssue mutation, which requires the issue's global node ID. Issue pinning is only performed when the isPinned parameter is explicitly set to true, maintaining backward compatibility with existing code.


This PR was written primarily by Claude Code.

Changes

Context

Please select one of the following:

  • This closes an existing Issue, Closes: #
  • This doesn't close an Issue, but I accept the risk that this PR may be closed if maintainers disagree with its opening or implementation

AI assistance disclosure

Did you use AI tools to create any part of this pull request?

Please select one option and, if yes, briefly describe how AI was used (e.g., code, tests, docs) and which tool(s) you used.

  • No — I did not use AI for this contribution.
  • Yes — minimal assistance (e.g., IDE autocomplete, small code completions, grammar fixes).
  • Yes — substantive assistance (AI-generated non‑trivial portions of code, tests, or documentation).
  • Yes — other (please describe):

Documentation (please check one with an [x])

  • I have updated the documentation, or
  • No documentation update is required

How I've tested my work (please select one)

I have verified these changes via:

  • Code inspection only, or
  • Newly added/modified unit tests, or
  • No unit tests, but ran on a real repository, or
  • Both unit tests + ran on a real repository

The public repository:

@cla-assistant
Copy link

cla-assistant bot commented Nov 30, 2025

CLA assistant check
All committers have signed the CLA.

Adds ability to pin GitHub issues via the platform API and configures
the dependency dashboard to be pinned by default. This makes the
dependency dashboard more visible by pinning it at the top of the
repository's Issues page.

Changes:
- Add `isPinned` optional parameter to `EnsureIssueConfig` interface
- Implement GraphQL mutations for pinning issues
- Add `node_id` field to GitHub issue schema to support pinning
- Update GitHub platform `ensureIssue()` to pin issues when requested
- Configure dependency dashboard to set `isPinned: true` by default
- Use `requestGraphql()` method for GraphQL API calls
- Add explicit `TransformedIssue` type for type safety
- Use nullish coalescing operator (`??`) for safer defaults

The implementation uses GitHub's GraphQL API `pinIssue` mutation, which
requires the issue's global node ID. Issue pinning is only performed
when the `isPinned` parameter is explicitly set to true, maintaining
backward compatibility with existing code.

---

This PR was written primarily by Claude Code.
@sgewirtz1 sgewirtz1 force-pushed the feat/pin-dependency-dashboard branch from 2ab5fd0 to f768ded Compare November 30, 2025 15:24
…ance

Convert TransformedIssue and CacheData from type aliases to interfaces
to satisfy @typescript-eslint/consistent-type-definitions rule.
@jamietanna
Copy link
Contributor

Thanks!

Note to reviewers: will need to review with some of the considerations from #34459

@jamietanna
Copy link
Contributor

Also, is it intentional commits are from @shimongewirtz but PR is from @sgewirtz1?

Might be why the CLA is failing!

@sgewirtz1
Copy link
Author

Also, is it intentional commits are from @shimongewirtz but PR is from @sgewirtz1?

Might be why the CLA is failing!

hope not, I use both interchangebly

@sgewirtz1 sgewirtz1 force-pushed the feat/pin-dependency-dashboard branch 4 times, most recently from a2b10c0 to 8e10420 Compare December 1, 2025 08:43
Change node_id from required 'string | undefined' to optional 'string?'
to maintain backward compatibility with existing tests that don't include
this property.
@sgewirtz1 sgewirtz1 force-pushed the feat/pin-dependency-dashboard branch from 8e10420 to 7b6ba04 Compare December 1, 2025 09:12
@RahulGautamSingh
Copy link
Collaborator

Configure dependency dashboard to set isPinned: true by default

Nope

body: platform.massageMarkdown(issueBody, config.rebaseLabel),
labels: config.dependencyDashboardLabels,
confidential: config.confidential,
isPinned: true,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be configurable via a new config option, so users can decide for themselves.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, also take a look at this comment for directions about how to set value for the new config option and whether the pinning of an issue needs additional permissions or not.

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.

4 participants