Skip to content

REQUEST: Repository maintenance on opentelemetry-dotnet & opentelemetry-dotnet-contrib #2127

@CodeBlanch

Description

@CodeBlanch

Affected Repository

Requested changes

I have three things I need done. See Purpose section for details.

  • I have a GitHub App named "OpenTelemetry .NET Automation". I want to transfer this to the open-telemetry organization. Someone with admin will need to approve this.
  • Once transferred to open-telemetry org I need an admin to give @open-telemetry/dotnet-maintainers access to manage that app. This way all currently/future maintainers will have access.
  • I need this app installed into opentelemetry-dotnet & opentelemetry-dotnet-contrib. Admin may need to do that or the manage access might be enough for maintainers to do this.

Purpose

I am working on automating the release process and a bunch of maintenance tasks for dotnet. There are a lot of steps. We open PRs. Create Releases. Push tags. Invoke workflows in contrib repo.

The challenge is when these things are done via GitHub actions they don't trigger other workflows. There are a few recommendations published by GitHub to solve this: https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#workarounds-to-trigger-further-workflow-runs

The one I am attempting to implement with this app is: https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens

I don't like the Personal Access Token (PAT) approach because everything will look like it is being done by a person (probably me) and the tokens expire. SSH key only works for pushes. Machine account won't work for kicking off workflows in contrib.

The release process is like this (noted where tokens will help)...

  • Workflow is manually invoked to kick things off. A tag\version is chosen.
  • Workflow opens a PR to update CHANGELOGs and public api files. A token is needed here so this PR triggers a CI workflow.
  • A maintainer has to merge this PR.
  • Once the release PR is merged another workflow creates a tag. A token is needed here to trigger workflows which spawn on tag push.
  • A release workflow triggers on the tag push and creates a github release. A token is needed here to trigger workflows which spawn on release publish.
  • A release workflow triggers on the release publish. It performs these actions...
    • A cleanup PR is opened to update some metadata for the latest version. A token is needed here to trigger CI workflow on that PR.
    • We call a workflow in contrib to notify it of the new release. That workflow kicks off a similar process in contrib. A token is needed here to call into contrib.

Expected Duration

Permanent

Repository Maintainers

@open-telemetry/dotnet-maintainers

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/project-infraNon-GitHub project infra (DockerHub, etc.)

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions