microsoft / PowerShellForGitHub

Microsoft PowerShell wrapper for GitHub API
Other
584 stars 184 forks source link

Code of Conduct API preview is being deprecated #343

Open HowardWolosky opened 2 years ago

HowardWolosky commented 2 years ago

Issue Details

Just received a heads-up from GitHub that the Code of Conduct API preview which uses the scarlet-witch-preview header is being deprecated on December 6, 2021.

Deprecation Notice: https://github.blog/changelog/2021-10-06-deprecation-notice-codes-of-conduct-api-preview/

It is suggested to migrate to the Get community profile metrics endpoint to retrieve this information.

Suggested Next Steps

It looks like we definitely need to do the following:

Then we need to do one of these two things:

  1. Deprecate GetGitHubCodeOfConduct since it uses an API endpoint that is going away. or
  2. Modify Get-GitHubCodeOfConduct to use Get-GitHubCommunityProfileMetrics behind the scenes, and put the return content into the same format. This should be mostly straight-forward as most of the same data is being returned by the new API, with the exception of body and CodeOfConductKey... That means the body would have to be retrieved with an additional query after the Get-GitHubCommunityProfileMetrics call, and the $Key parameter would have to be deprecated entirely since there is no equivalent way to get that information with the new API.

My preference would be doing 2.

Reference data

This is the current output of Get-GitHubCommunityProfileMetrics for microsoft/PowerShellForGitHub

{
    "health_percentage":  85,
    "description":  "Microsoft PowerShell wrapper for GitHub API",
    "documentation":  null,
    "files":  {
                  "code_of_conduct":  {
                                          "key":  "other",
                                          "name":  "Other",
                                          "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/CODE_OF_CONDUCT.md",
                                          "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/community/code_of_conduct"
                                      },
                  "code_of_conduct_file":  {
                                               "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/contents/CODE_OF_CONDUCT.md",
                                               "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/CODE_OF_CONDUCT.md"
                                           },
                  "contributing":  {
                                       "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/contents/CONTRIBUTING.md",
                                       "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/CONTRIBUTING.md"
                                   },
                  "issue_template":  null,
                  "pull_request_template":  {
                                                "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/contents/.github/PULL_REQUEST_TEMPLATE.md",
                                                "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/.github/PULL_REQUEST_TEMPLATE.md"
                                            },
                  "license":  {
                                  "key":  "other",
                                  "name":  "Other",
                                  "spdx_id":  "NOASSERTION",
                                  "url":  null,
                                  "node_id":  "MDc6TGljZW5zZTA=",
                                  "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/LICENSE"
                              },
                  "readme":  {
                                 "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/contents/README.md",
                                 "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/README.md"
                             }
              },
    "updated_at":  "\/Date(1631741244000)\/",
    "content_reports_enabled":  false
}

and this is the current result for Get-GitHubCodeOfConduct -OwnerName microsoft -RepositoryName PowerShellForGitHub

{
    "key":  "other",
    "name":  "Other",
    "html_url":  "https://github.com/microsoft/PowerShellForGitHub/blob/master/CODE_OF_CONDUCT.md",
    "url":  "https://api.github.com/repos/microsoft/PowerShellForGitHub/community/code_of_conduct",
    "body":  "# PowerShellForGitHub PowerShell Module\n\n## Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)\nor contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions\nor comments.\n",
    "CodeOfConductKey":  "other"
}