Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New "vNext" update script using dependabot-core updater; aligns update behaviour more closely with the GitHub Dependabot service #1186

Conversation

rhyskoedijk
Copy link

@rhyskoedijk rhyskoedijk commented Jul 3, 2024

What are you trying to accomplish?

  1. More closely align the update script logic with the GitHub hosted Dependabot updater service so that the Azure DevOps user experience is more consistent with the GitHub experience.
  2. Enable more Dependabot features that are not currently supported by the existing update script (e.g. groups:, directories:, etc)

New update script 'vNext'

To preserve the existing behavior, a new update script (update_script_vnext.rb) was added.
This new script leverages as much existing functionality from the dependabot-core "updater" project as possible; as opposed to update_script.rb which is based on dry-run.rb and does not handle many of the newer Dependabot features such as dependency groups and multiple directories.

High-level update sequence diagram

 sequenceDiagram
    participant script as update_script_vnext.rb
    participant jb as TingleSoftware.Dependabot.Job
    participant cmd as TingleSoftware.Dependabot.Commands.UpdateAllDependenciesCommand
    participant updater as Dependabot.Updater
    participant client as TingleSoftware.Dependabot.ApiClients.AzureApiClient
    participant ado as Azure DevOps

    script->>+jb: Create new job
    jb->>jb: Parse "DEPENDABOT*" environment variables
    jb->>+ado: Get active pull requests using "TingleSoftware::Dependabot::Clients::Azure"
    ado-->>-jb: Pull request info
    jb->>+ado: Get active pull request properties using "TingleSoftware::Dependabot::Clients::Azure"
    ado-->>-jb: Property info
    jb->>jb: Parse "UPDATED_DEPENDENCIES" properties of active pull request
    jb-->>-script: "Dependabot::Job" object
    script->>+cmd: Perform job
    cmd->>cmd: Clone git repo contents using "Dependabot::FileFetcher"
    cmd->>cmd: Snapshot dependencies using "Dependabot::DependencySnapshot"
    loop For every existing pull request
       cmd->>updater: Update or close dependency update using "Dependabot::Updater"
    end
    cmd->>-updater: Create all dependency [group] updates using "Dependabot::Updater"
    alt when "Dependabot::Updater" creates a new pull request
        updater->>client: Create pull request
        client->>+ado: Publish pull request using "Dependabot::PullRequestCreator"
        ado-->>-client: Pull request info
        client->>ado: Set pull request property metadata using "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Set auto-approve using "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Set auto-complete using "Dependabot::Clients::Azure"
    end
    alt when "Dependabot::Updater" updates an existing new pull request
        updater->>client: Update pull request
        client->>+ado: Update pull request using "Dependabot::PullRequestUpdater"
        ado-->>-client: Pull request info
        client->>ado: Set pull request property metadata using "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Set auto-approve using "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Set auto-complete using "Dependabot::Clients::Azure"
    end
    alt when "Dependabot::Updater" closes an existing new pull request
        updater->>client: Close pull request
        client->>+ado: Comment on pull request with close reason usin "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Delete source branch using "TingleSoftware::Dependabot::Clients::Azure"
        client->>ado: Abandon pull request using "TingleSoftware::Dependabot::Clients::Azure"
    end
Loading

Dependency state metadata now stored in pull request properties

The vNext script will use Pull Request Properties to store metadata related to Dependabot updates. This is done to mimic how Dependabot::ApiClient works and is primarily used to accurately identify which dependencies were modified by a PR without needing to interept the PR title. The stored PR property names are:

  • dependabot.base_commit_sha
  • dependabot.updated_dependencies

If the "updated_dependencies" property is not present in a PR, the vNext script will not recognise it when checking for existing PRs during the update process.
The property list for a grouped dependency update PR would look like:

{
  "Microsoft.Git.PullRequest.IsDraft": {
    "$type": "System.String",
    "$value": "False"
  },
  "Microsoft.Git.PullRequest.SourceRefName": {
    "$type": "System.String",
    "$value": "refs/heads/dependabot/nuget/multi-1d378ec07d"
  },
  "Microsoft.Git.PullRequest.TargetRefName": {
    "$type": "System.String",
    "$value": "refs/heads/main"
  },
  "dependabot.base_commit_sha": {
    "$type": "System.String",
    "$value": "3a69392dd425b5c7864b7ae5c9b1f43d81a27e4c"
  },
  "dependabot.updated_dependencies": {
    "$type": "System.String",
    "$value": "{\"dependency-group-name\":\"microsoft\",\"dependencies\":[{\"dependency-name\":\"Microsoft.AspNetCore.Authentication.OpenIdConnect\",\"dependency-version\":\"8.0.6\",\"directory\":\"/\"},{\"dependency-name\":\"Microsoft.AspNetCore.Authentication.WsFederation\",\"dependency-version\":\"8.0.6\",\"directory\":\"/\"}]}"
  }
}

Limitations

The following environment variables and features are not currently supported by the vNext script.

Feature Supported Notes
DEPENDABOT_EXCLUDE_REQUIREMENTS_TO_UNLOCK Not Supported No out-of-the-box extension point to implement this currently.
DEPENDABOT_FAIL_ON_EXCEPTION Not Supported Using Dependabot::Updater to run the core updater logic, there is no out-of-the-box option to cleanly break out of the update process. The behaviour is that the updater will process all updates and then aggregate errors at the end; Interrupting this process by throwing exceptions to break out of the updater results in error details and stack trace info being lost, making diagnosing issues very difficult
DEPENDABOT_OPEN_PULL_REQUESTS_LIMIT Behaviour Changed Similar to above Dependabot::Updater cannot be cleanly interrupted. This means that once the pull request limit is reached, dependency updates will continue to be processed but they will not be committed to DevOps. This may result in overall longer task run times due to the updater processing updates that may not end up being committed.

New environment variables

The following new environments variables have been added and are supported by the vNext script only.

Variable Name Description
DEPENDABOT_DIRECTORIES Optional. The list of directories in which dependencies are to be checked, in JSON format. For example: ['/', '/src']. When specified, it overrides DEPENDABOT_DIRECTORY. When not specified, DEPENDABOT_DIRECTORY is used instead. See official docs for more.
DEPENDABOT_SECURITY_UPDATES_ONLY Optional. If true, only security updates will be processed. Can be used in combination DEPENDABOT_OPEN_PULL_REQUESTS_LIMIT to exclusively perform security updates whilst also limiting the total number of security PRs opened at once.
DEPENDABOT_VENDOR_DEPENDENCIES Optional Determines if dependencies are vendored when updating them. Don't use this option if you're using gomod as Dependabot automatically detects vendoring. See official docs for more.
DEPENDABOT_DEPENDENCY_GROUPS Optional. The dependency group rule mappings, in JSON format. For example: {"microsoft":{"applies-to":"version-updates","dependency-type":"production","patterns":["microsoft*"],"exclude-patterns":["*azure*"],"update-types":["minor","patch"]}}. See official docs for more.
DEPENDABOT_SIGNATURE_KEY Optional. The GPG signature key that git commits will be signed with. See official docs for more. By default, commits will not be signed.
DEPENDABOT_BRANCH_NAME_PREFIX Optional. The prefix used for Git branch names. Defaults to dependabot.
DEPENDABOT_PR_NAME_PREFIX_STYLE Optional. The pull request name prefix styling. Possible options are none, angular, eslint, gitmoji. If DEPENDABOT_COMMIT_MESSAGE_OPTIONS prefixes are also defined, this option does nothing. Defaults to none.
DEPENDABOT_COMPATIBILITY_SCORE_BADGE Optional. Determines if compatibility score badges are shown in the pull request description for single dependency updates (but not group updates). This feature uses public information from GitHub and enabling it does not send any private information about your repository to GitHub other than the dependency name and version number(s) required to calculate to the compatibility score. Defaults to false. See official docs for more.
DEPENDABOT_MESSAGE_HEADER Optional. Additional pull request description text to shown before the dependency change info.
DEPENDABOT_MESSAGE_FOOTER Optional. Additional pull request description text to shown after the dependency change info. This text will not be truncated, even when the dependency change info exceeds the PR maximum description length.
DEPENDABOT_COMMENT_PULL_REQUESTS Optional. Determines whether to comment on pull requests which an explanation of the reason for closing. Defaults to false.
DEPENDABOT_JOB_ID Optional. The unique id for the update job run. Used for logging and auditing. When not specified, the current date/timestamp is used.
DEPENDABOT_DEBUG Optional. Determines if verbose log messages are logged. Useful for diagnosing issues. Defaults to false.

Dependency groups

Dependency groups are supported if DEPENDABOT_DEPENDENCY_GROUPS is set with the group rules, in JSON format. See the official docs for more.

image

Multiple directories per package ecosystem

Multiple directories per ecosystem are supported if DEPENDABOT_DIRECTORIES is set with the directory paths, in JSON format. See the official docs for more.

Comment on pull requests

When DEPENDABOT_COMMENT_PULL_REQUESTS is set, a comment will be added before closing pull requests explaining why it was closed. The comment closely (but not exactly) match those used by the GitHub Dependabot service.

image

Git branch prefixes

The Git branch prefix can be set using DEPENDABOT_BRANCH_NAME_PREFIX.

image

Pull request name prefix styles

The (hidden?) name prefix style options can be forced on using DEPENDABOT_PR_NAME_PREFIX_STYLE. These styles are similar to "commit options" prefixes, but slightly more dynamic? (e.g. gitmoji uses "⬆️" for regular updates, or "⬆️🔒" for a security updates). Not sure if this is a new experimental feature, or an old one that they are phasing out. Either way, it can now be configured. Supported options are:

Default

image

Gitmoji

image

Angular

image

Eslint

image

Compatibility score badges

When DEPENDABOT_COMPATIBILITY_SCORE_BADGES is set, compatibility score badges are shown in the pull request description for single dependency updates (but not group updates). This feature uses public information from GitHub and enabling it does not send any private information about your repository to GitHub other than the dependency name and version number(s) required to calculate to the compatibility score. Defaults to false. See official docs for more.

image

Pull request description header/footer text

Extra header/footer text can be added to pull request descriptions with DEPENDABOT_MESSAGE_HEADER and DEPENDABOT_MESSAGE_FOOTER respectively.

image

Pull request description "Vulnerabilities fixed" info

When GITHUB_ACCESS_TOKEN is set, pull requests containing security related dependency updates will now have:

  • "[Security]" prefix added to the PR name (or equivalent when using PR prefix name styles);
  • "security" label added to the PR (unless custom labels are used);
  • "Vulnerabilities fix" section added to the PR description, with expandable vulnerability details and links to the GitHub Advisory Database.

image

Pull request author signed commits (signature key config)

Commits made by Dependabot will be signed when DEPENDABOT_SIGNATURE_KEY is set with an appropriate GPG key. See official docs for more.

@rhyskoedijk rhyskoedijk changed the title Dependency group and multi-directory support Dependency group and multi-directory support (proof-of-concept) Jul 3, 2024
@mburumaxwell
Copy link
Contributor

This has got to be the most detailed contribution I have seen in this repository. Maybe the first from someone with proper Ruby knowledge. Thank you so much.

Here's my view:

  1. The renaming of files towards using the lib makes a lot of sense. However, I'd prefer we did that in a separate PR before to be merged before this one.
  2. The files I copied from the core repository are unused so you're right in starting to create a new client. I think we need to delete those files too.
  3. To allow for others to test, id rename update_script_new.rb to update_script_vnext.rb, add a Boolean input to the extension task named useVNext, which in turn changes the command sent to docker.
  4. What feature set are we looking at in this new/vnext workflow? Groups is one, are there others that I didn't see or come as a consequence? Also, I wonder if this will affect things like conflict resolution and closure. Though I think that's why we are keeping the other one around.

Overall, thanks so much for the contribution!

@rhyskoedijk
Copy link
Author

  1. The renaming of files towards using the lib makes a lot of sense. However, I'd prefer we did that in a separate PR before to be merged before this one.

Makes sense, I'll push a new PR for these.

  1. The files I copied from the core repository are unused so you're right in starting to create a new client. I think we need to delete those files too.

There are a few files from the core repo that will be really useful still I think, but I agree there are a few that could be removed. I will see if I can clean them up a little.

  1. To allow for others to test, id rename update_script_new.rb to update_script_vnext.rb, add a Boolean input to the extension task named useVNext, which in turn changes the command sent to docker.

Sounds good to me, I'll update this.

  1. What feature set are we looking at in this new/vnext workflow? Groups is one, are there others that I didn't see or come as a consequence? Also, I wonder if this will affect things like conflict resolution and closure. Though I think that's why we are keeping the other one around.

The main features I am personally interested in are:

I was hoping that if the updater piggybacks off the core repository classes as much as possible, then any new Dependabot features should more easily "just work" (overly optimistic maybe).

Overall, thanks so much for the contribution!

I should be thanking you for making this project in the first place :)

@mburumaxwell
Copy link
Contributor

After merging the other PRs, the focus here is now more specific.

If we can piggyback on the updated core logic then it simplifies the maintenance works. This is why I had started to keep the files up-to date but got too busy to keep track, yet the updater is not published as a consumable. They don't accept contributions for it either.

Gathered some extra thoughts:

  • We have an empty client were the actual PRs opened? It may have done so if we are relying on the internal Azure client but I'm unsure.
  • Do signature annotations require adding of types to the whole runtime code? (Assuming you have more knowledge on Ruby than me which is likely)
  • Maybe we can indicate what features are not supported at the start. For example: vulnerability checks, auto approve, etc Unless you already have solutions for this.

Rhys Koedijk added 2 commits July 8, 2024 17:03
@rhyskoedijk
Copy link
Author

rhyskoedijk commented Jul 8, 2024

If we can piggyback on the updated core logic then it simplifies the maintenance works. This is why I had started to keep the files up-to date but got too busy to keep track, yet the updater is not published as a consumable. They don't accept contributions for it either.

Yeh, I think we can use what is there to do the majority of the heavy lifting though. The dry_run.rb script hasn't been updated to support things like dependency groups (unless I'm blind), but the updater code has. So to get the most "authentic" experience, updater seems like the best choice.

I might submit a PR soon to update the /updater/lib/dependabot files to latest version as there have been a number of changes since these were committed.

We have an empty client were the actual PRs opened? It may have done so if we are relying on the internal Azure client but I'm unsure.

The API client still needs to be finished, it will be a combination of your "azure_helper" and the built-in Azure client. When I put this up for draft, I only did the minimum required to get the grouped PRs to work on the local repo within the Dependabot container.

Do signature annotations require adding of types to the whole runtime code? (Assuming you have more knowledge on Ruby than me which is likely)

Honestly, not sure. I only just picked up Ruby a couple of weeks ago when I started contributing to this and dependabot-core. I will look in to it though before publishing the PR.

Maybe we can indicate what features are not supported at the start. For example: vulnerability checks, auto approve, etc Unless you already have solutions for this.

Good idea. I'm hoping to implement all the features in to the new script, but if that doesn't happen for some reason I'll look in to this.

@mburumaxwell
Copy link
Contributor

I think this is generally okay. I cannot see anything of major concern yet in the updater. Issues may show up when we make it available for others to test. I see some commits since you asked for review, I will keep the assumption that so long as the PR is in draft mode, you are still working on stuff, and then I can review again when you make it ready to review.

On a side note, I do not know if other people use the server component that will be affected when we make this mainstream as it would require the fetch_files.rb and update_files.rb. Maybe we can worry about it when it happens.

@rhyskoedijk
Copy link
Author

rhyskoedijk commented Jul 15, 2024

I think this is generally okay. I cannot see anything of major concern yet in the updater. Issues may show up when we make it available for others to test. I see some commits since you asked for review, I will keep the assumption that so long as the PR is in draft mode, you are still working on stuff, and then I can review again when you make it ready to review.

Will do. There are two bugs that I know about which I'm still working though, but shouldn't be too far away from publishing now.

On a side note, I do not know if other people use the server component that will be affected when we make this mainstream as it would require the fetch_files.rb and update_files.rb. Maybe we can worry about it when it happens.

I didn't realise the server component used these files, my mistake. It is probably a good idea that I restore them then if that is the case.

@rhyskoedijk rhyskoedijk changed the title Perform updates using dependabot-core updater; Align update behaviour more closely with the GitHub Dependabot service New "vNext" update script using dependabot-core updater; aligns update behaviour more closely with the GitHub Dependabot service Jul 15, 2024
@rhyskoedijk rhyskoedijk marked this pull request as ready for review July 16, 2024 11:13
@mburumaxwell mburumaxwell merged commit ea3bcde into tinglesoftware:main Jul 17, 2024
19 checks passed
@leonardochaia
Copy link

Hey guys! I've been following this.. we are just starting to implements dependabot on our Azure organization. I am tempted to test this, since we have a monorepo and want to use groups.
Any tips on how to test this vnext update script? Do I just run the ecosystem image and use the new name as the command?
Thank you!!

@rhyskoedijk rhyskoedijk deleted the feature/multi-directory-and-dependency-group-configuration branch July 17, 2024 20:29
@rhyskoedijk
Copy link
Author

Any tips on how to test this vnext update script?

Unfortunately you can't test this new script in DevOps until the extension is updated (see: #1216). However, you can run the updater manually using Docker if that is something you are comfortable with. The image tag would need to be 1.29.8-ci0001 and the command would be update_script_vnext, for example:

docker run --rm -t \
           <your_environment_variables_here> \
           ghcr.io/tinglesoftware/dependabot-updater-<your_ecosystem_name_here>:1.29.8-ci0001 update_script_vnext

@leonardochaia
Copy link

Hi @rhyskoedijk appreciate it will give it a try and I'll report back in the form of new issue/discussion with my findings.
Thanks! Have a great day
Leo.

kzhuklinets added a commit to kirillcoso/dependabot-azure-devops that referenced this pull request Aug 13, 2024
* Bump the event-bus group with 2 updates (tinglesoftware#1156)

Bumps the event-bus group with 2 updates: [Tingle.EventBus.Transports.Azure.ServiceBus](https://github.com/tinglesoftware/eventbus) and [Tingle.EventBus.Transports.InMemory](https://github.com/tinglesoftware/eventbus).


Updates `Tingle.EventBus.Transports.Azure.ServiceBus` from 0.21.2 to 0.22.0
- [Release notes](https://github.com/tinglesoftware/eventbus/releases)
- [Commits](tinglesoftware/eventbus@0.21.2...0.22.0)

Updates `Tingle.EventBus.Transports.InMemory` from 0.21.2 to 0.22.0
- [Release notes](https://github.com/tinglesoftware/eventbus/releases)
- [Commits](tinglesoftware/eventbus@0.21.2...0.22.0)

---
updated-dependencies:
- dependency-name: Tingle.EventBus.Transports.Azure.ServiceBus
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: event-bus
- dependency-name: Tingle.EventBus.Transports.InMemory
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: event-bus
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Change updates time from 04:00 to 02:00 to be consistent with our other repositories and hence ease management

* Bump the tingle group with 3 updates (tinglesoftware#1157)

* Import constants for requirements_update_strategy (tinglesoftware#1159)

* Bump rubocop-performance in /updater in the rubocop group (tinglesoftware#1165)

* Bump ts-jest from 29.1.4 to 29.1.5 in /extension in the jest group (tinglesoftware#1164)

* Bump YamlDotNet from 15.1.6 to 15.3.0 (tinglesoftware#1163)

* Bump the azure group with 2 updates (tinglesoftware#1162)

* Bump dependabot-omnibus from 0.260.0 to 0.261.0 in /updater (tinglesoftware#1166)

* Regenerate lock file which fixes vulnerabilities

* Set packageManager in package.json

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1172)

* Bump Azure.Identity from 1.11.4 to 1.12.0 in the azure group (tinglesoftware#1176)

* Bump turbo_tests from 2.2.3 to 2.2.4 in /updater (tinglesoftware#1168)

* Create groups for sentry and opentelemetry updates

* Bump the opentelemetry group in /updater with 4 updates (tinglesoftware#1177)

Bumps the opentelemetry group in /updater with 4 updates: [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-ruby), [opentelemetry-instrumentation-excon](https://github.com/open-telemetry/opentelemetry-ruby-contrib), [opentelemetry-instrumentation-faraday](https://github.com/open-telemetry/opentelemetry-ruby-contrib) and [opentelemetry-instrumentation-net_http](https://github.com/open-telemetry/opentelemetry-ruby-contrib).


Updates `opentelemetry-exporter-otlp` from 0.27.0 to 0.28.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-ruby/blob/main/exporter/otlp/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-ruby@opentelemetry-exporter-otlp/v0.27.0...opentelemetry-exporter-otlp/v0.28.0)

Updates `opentelemetry-instrumentation-excon` from 0.22.2 to 0.22.3
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/excon/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-ruby-contrib@opentelemetry-instrumentation-excon/v0.22.2...opentelemetry-instrumentation-excon/v0.22.3)

Updates `opentelemetry-instrumentation-faraday` from 0.24.3 to 0.24.5
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/faraday/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-ruby-contrib@opentelemetry-instrumentation-faraday/v0.24.3...opentelemetry-instrumentation-faraday/v0.24.5)

Updates `opentelemetry-instrumentation-net_http` from 0.22.5 to 0.22.6
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/net_http/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-ruby-contrib@opentelemetry-instrumentation-net_http/v0.22.5...opentelemetry-instrumentation-net_http/v0.22.6)

---
updated-dependencies:
- dependency-name: opentelemetry-exporter-otlp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-instrumentation-excon
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: opentelemetry
- dependency-name: opentelemetry-instrumentation-faraday
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: opentelemetry
- dependency-name: opentelemetry-instrumentation-net_http
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: opentelemetry
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump typescript from 5.4.5 to 5.5.2 in /extension (tinglesoftware#1173)

* Bump typescript from 5.4.5 to 5.5.2 in /extension

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5 to 5.5.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](microsoft/TypeScript@v5.4.5...v5.5.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update target ESLINT

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxwell Weru <[email protected]>

* Bump dependabot-omnibus from 0.261.0 to 0.262.0 in /updater (tinglesoftware#1170)

Bumps [dependabot-omnibus](https://github.com/dependabot/dependabot-core) from 0.261.0 to 0.262.0.
- [Release notes](https://github.com/dependabot/dependabot-core/releases)
- [Changelog](https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG_ARCHIVE_2019_TO_SWITCH_TO_GITHUB_RELEASES.md)
- [Commits](dependabot/dependabot-core@v0.261.0...v0.262.0)

---
updated-dependencies:
- dependency-name: dependabot-omnibus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove codeql workflows so that we can leverage the automatic setup

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1179)

* Bump the tingle group with 3 updates (tinglesoftware#1182)

* Bump Microsoft.VisualStudio.Azure.Containers.Tools.Targets (tinglesoftware#1183)

* Bump Microsoft.FeatureManagement.AspNetCore in the microsoft group (tinglesoftware#1181)

* Bump Azure.ResourceManager.AppContainers in the azure group (tinglesoftware#1180)

* Bump the sentry group in /updater with 2 updates (tinglesoftware#1184)

* Bump dependabot-omnibus from 0.262.0 to 0.263.0 in /updater (tinglesoftware#1185)

* Fix missing module name (tinglesoftware#1187)

* Reorganise code in to lib folder; seperate dependabot code from tinglesoftware code using unique module names (tinglesoftware#1188)

* Add developer guide documentation; ignore extension build artifacts (tinglesoftware#1189)

* Bump the sentry group in /updater with 2 updates (tinglesoftware#1193)

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1195)

* Bump typescript from 5.5.2 to 5.5.3 in /extension (tinglesoftware#1196)

* Bump dependabot-omnibus from 0.263.0 to 0.264.0 (tinglesoftware#1191)

* Use correct version of dependabot-updater base image when running the 'updater' workflow (tinglesoftware#1192)

* Fix module name (tinglesoftware#1199)

* Use latest dependabot updater code; Remove scripts from `updater/bin` that don't work (tinglesoftware#1197)

* Add some more debug statements, and validate data length before reading result (tinglesoftware#1200)

* Changes to `.rubocop*.yml`, `.ruby-version`, and `Rakefile` should trigger the updater workflow

* Update update-files.ps1 and related files (tinglesoftware#1202)

* Enable sorbet and update files (tinglesoftware#1203)

* Bump dependabot-omnibus from 0.264.0 to 0.265.0 in /updater (tinglesoftware#1205)

Bumps [dependabot-omnibus](https://github.com/dependabot/dependabot-core) from 0.264.0 to 0.265.0.
- [Release notes](https://github.com/dependabot/dependabot-core/releases)
- [Changelog](https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG_ARCHIVE_2019_TO_SWITCH_TO_GITHUB_RELEASES.md)
- [Commits](dependabot/dependabot-core@v0.264.0...v0.265.0)

---
updated-dependencies:
- dependency-name: dependabot-omnibus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* If allow condition "dependency-name" is nil, use "*"; Use wildcard matching instead of regex matching (tinglesoftware#1208)

* Bump the xunit group with 2 updates (tinglesoftware#1212)

* Bump the microsoft group with 8 updates (tinglesoftware#1211)

* Bump ts-jest from 29.1.5 to 29.2.2 in /extension in the jest group (tinglesoftware#1215)

* Bump dotnet-ef from 8.0.6 to 8.0.7 (tinglesoftware#1214)

* Fix allow condition logic (tinglesoftware#1209)

* Add missing early return statement

* Bump YamlDotNet from 15.3.0 to 16.0.0 (tinglesoftware#1213)

Bumps YamlDotNet from 15.3.0 to 16.0.0.

---
updated-dependencies:
- dependency-name: YamlDotNet
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* New "vNext" update script using dependabot-core updater; aligns update behaviour more closely with the GitHub Dependabot service (tinglesoftware#1186)

* DevOps extension task new updater commands and options (tinglesoftware#1216)

* Bump dependabot-omnibus from 0.265.0 to 0.266.0 in /updater (tinglesoftware#1218)

Bumps [dependabot-omnibus](https://github.com/dependabot/dependabot-core) from 0.265.0 to 0.266.0.
- [Release notes](https://github.com/dependabot/dependabot-core/releases)
- [Changelog](https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG_ARCHIVE_2019_TO_SWITCH_TO_GITHUB_RELEASES.md)
- [Commits](dependabot/dependabot-core@v0.265.0...v0.266.0)

---
updated-dependencies:
- dependency-name: dependabot-omnibus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix error when attempting to update a pre-1.30 pull request using the new vNext script (tinglesoftware#1219)

* Fix PRs being incorrectly abandoned when using multiple package ecosystems (tinglesoftware#1221)

* Bump the tingle group with 3 updates (tinglesoftware#1229)

* Bump Azure.Messaging.ServiceBus from 7.17.5 to 7.18.0 in the azure group (tinglesoftware#1226)

* Bump the event-bus group with 2 updates (tinglesoftware#1227)

* Bump ts-jest from 29.2.2 to 29.2.3 in /extension in the jest group (tinglesoftware#1224)

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1225)

* Update groups

* Log updated file diffs when 'skip pull requests' and 'debug' options are true (tinglesoftware#1230)

* Fix for group PRs being closed on refresh when nothing has changed (tinglesoftware#1222)

* Bump Microsoft.FeatureManagement.AspNetCore (tinglesoftware#1231)

* Fix logging error when creating new PR and the open PR limit has been reached (tinglesoftware#1223)

* Automatically install the Azure Artifacts Credential Provider if DevOps NuGet feeds are configured (tinglesoftware#1233)

* Bump the sentry group in /updater with 2 updates (tinglesoftware#1235)

Bumps the sentry group in /updater with 2 updates: [sentry-opentelemetry](https://github.com/getsentry/sentry-ruby) and [sentry-ruby](https://github.com/getsentry/sentry-ruby).


Updates `sentry-opentelemetry` from 5.18.1 to 5.18.2
- [Release notes](https://github.com/getsentry/sentry-ruby/releases)
- [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md)
- [Commits](getsentry/sentry-ruby@5.18.1...5.18.2)

Updates `sentry-ruby` from 5.18.1 to 5.18.2
- [Release notes](https://github.com/getsentry/sentry-ruby/releases)
- [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md)
- [Commits](getsentry/sentry-ruby@5.18.1...5.18.2)

---
updated-dependencies:
- dependency-name: sentry-opentelemetry
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
- dependency-name: sentry-ruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Sync files for updater version 0.266.0 (tinglesoftware#1236)

Follow up to tinglesoftware#1235

* Regenerate Gemfile.lock

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1237)

Bumps the js-ts-types group in /extension with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 20.14.11 to 20.14.12
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: js-ts-types
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump typescript from 5.5.3 to 5.5.4 in /extension (tinglesoftware#1239)

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](microsoft/TypeScript@v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump gittools/actions from 1 to 2 (tinglesoftware#1238)

Bumps [gittools/actions](https://github.com/gittools/actions) from 1 to 2.
- [Release notes](https://github.com/gittools/actions/releases)
- [Commits](GitTools/actions@v1...v2)

---
updated-dependencies:
- dependency-name: gittools/actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Microsoft.Azure.AppConfiguration.AspNetCore in the azure group (tinglesoftware#1240)

Bumps the azure group with 1 update: [Microsoft.Azure.AppConfiguration.AspNetCore](https://github.com/Azure/Azconfig-DotnetProvider).


Updates `Microsoft.Azure.AppConfiguration.AspNetCore` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/Azure/Azconfig-DotnetProvider/releases)
- [Commits](Azure/AppConfiguration-DotnetProvider@7.2.0...7.3.0)

---
updated-dependencies:
- dependency-name: Microsoft.Azure.AppConfiguration.AspNetCore
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: azure
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* NuGet feed auth support for Azure DevOps, Azure DevOps Server, and third-party NuGet servers (tinglesoftware#1241)

* Add `helpUrl` and `releaseNotes` to the extension task.

* Remove unused `useConfigFile` input (tinglesoftware#1244)

* Reference discussion for permission in bug report template

* Remove docker demand and rely on `tl.which` (tinglesoftware#1246)

This should allow private agents with non-standard discovery.

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1250)

* Bump dependabot-omnibus from 0.266.0 to 0.267.0 in /updater (tinglesoftware#1252)

* Bump the opentelemetry group in /updater with 6 updates (tinglesoftware#1249)

* Fix nuget.config not using correct credentials during NuGet updates of .NET Framework projects (tinglesoftware#1248)

* Sync files for updater version 0.267.0

* Enable opentelemetry in `updater_script_vnext` (tinglesoftware#1254)

This is the first step towards adding telemetry to the updater. Useful in debugging of issues and general analytics. It follows what the GitHub hosted version has.

* Enable sentry in `updater_script_vnext` (tinglesoftware#1255)

This is the second step towards monitoring the updater. Useful in debugging of issues and general analytics. It follows what the GitHub hosted version has.

OpenTelemetry was setup in tinglesoftware#1254. Next step is to connect the error handler.

* Update update_script.rb

* Backport NuGet auth fix to `update_script`; Prevent NuGet leaking passwords in logs (tinglesoftware#1256)

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Bump axios from 1.7.2 to 1.7.3 in /extension (tinglesoftware#1264)

* Bump @types/node in /extension in the js-ts-types group (tinglesoftware#1262)

* Bump ts-jest from 29.2.3 to 29.2.4 in /extension in the jest group (tinglesoftware#1261)

* Bump azure-pipelines-task-lib from 4.13.0 to 4.15.0 in /extension (tinglesoftware#1263)

* Bump Azure.Messaging.ServiceBus from 7.18.0 to 7.18.1 in the azure group (tinglesoftware#1258)

* Bump dependabot-omnibus from 0.267.0 to 0.268.0 in /updater (tinglesoftware#1259)

Bumps [dependabot-omnibus](https://github.com/dependabot/dependabot-core) from 0.267.0 to 0.268.0.
- [Release notes](https://github.com/dependabot/dependabot-core/releases)
- [Changelog](https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG_ARCHIVE_2019_TO_SWITCH_TO_GITHUB_RELEASES.md)
- [Commits](dependabot/dependabot-core@v0.267.0...v0.268.0)

---
updated-dependencies:
- dependency-name: dependabot-omnibus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Regenerate Gemfile.lock

* Sync files for updater version 0.268.0

* Update rubocop

* Update update_script.rb

* Make use of OpenTelemetry in the updater (tinglesoftware#1268)

* Update azure.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update azure.rb

* Update azure.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update Gemfile

* Update update_script.rb

* Update Gemfile

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update GitVersion and react to changes (tinglesoftware#1270)

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update updater.yml

* revert

* Update updater.yml

* Update updater.yml

* Update updater.yml

* Update updater.yml

* Update updater.yml

* Update updater.yml

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* Update update_script.rb

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* test

* testt

* test

* test

* Update GitVersion.yml so that CI artifacts have better naming

* test

* test

* test

* test

* clean up

* clean up

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxwell Weru <[email protected]>
Co-authored-by: Rhys Koedijk <[email protected]>
Co-authored-by: Berend Haan <[email protected]>
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.

3 participants