diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..bd4a789 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,10 @@ +# Any repo changes beyond docs require PM owner approval. +* @localden @jmprieur + +# Conceptual and API content needs the review of the engineering team. +msal-python-conceptual/* @MicrosoftDocs/identity-sdk-cca-engineering-team + +# API documentation does not have code owners, but that is OK. +# Anyone can create a PR to the `main` branch and we will review +# the changes on the one-off basis. +python/ \ No newline at end of file diff --git a/.github/policies/auto-label-pr.yml b/.github/policies/auto-label-pr.yml deleted file mode 100644 index d591d51..0000000 --- a/.github/policies/auto-label-pr.yml +++ /dev/null @@ -1,82 +0,0 @@ -id: -name: GitOps.PullRequestIssueManagement -description: GitOps.PullRequestIssueManagement primitive -owner: -resource: repository -disabled: false -where: -configuration: - resourceManagementConfiguration: - eventResponderTasks: - - description: Label community PRs - if: - - payloadType: Pull_Request - - isAction: - action: Opened - - and: - - not: - activitySenderHasPermission: - permission: Admin - - not: - activitySenderHasPermission: - permission: Write - - not: - isActivitySender: - user: github-actions[bot] - - not: - isActivitySender: - user: github-actions - - not: - isActivitySender: - user: azure-sdk - - not: - isActivitySender: - user: dependabot - - not: - isActivitySender: - user: microsoft-github-policy-service[bot] - then: - - addLabel: - label: community-contribution - - - description: Label ref docs sync PRs from the microsoft-github-policy-service bot - triggerOnOwnActions: true - if: - - payloadType: Pull_Request - - isAction: - action: Opened - - isActivitySender: - user: microsoft-github-policy-service[bot] - - titleContains: - pattern: Merge smoke-test into main - isRegex: False - then: - - addLabel: - label: ":octocat: auto-merge" - - - description: Label prod sync PRs from the microsoft-github-policy-service bot - triggerOnOwnActions: true - if: - - payloadType: Pull_Request - - isAction: - action: Opened - - isActivitySender: - user: microsoft-github-policy-service[bot] - - titleContains: - pattern: Merge main into live - isRegex: False - then: - - addLabel: - label: ":octocat: auto-merge" - - - description: Label PRs from dependabot/dependabot[bot] - if: - - payloadType: Pull_Request - - or: - - isActivitySender: - user: dependabot - - isActivitySender: - user: dependabot[bot] - then: - - addLabel: - label: ":octocat: auto-merge" diff --git a/.github/policies/auto-merge-sync-pr.yml b/.github/policies/auto-merge.yml similarity index 79% rename from .github/policies/auto-merge-sync-pr.yml rename to .github/policies/auto-merge.yml index 8620065..4b93405 100644 --- a/.github/policies/auto-merge-sync-pr.yml +++ b/.github/policies/auto-merge.yml @@ -16,9 +16,8 @@ configuration: label: ':octocat: auto-merge' - targetsBranch: branch: main - - or: - - isActivitySender: - user: microsoft-github-policy-service[bot] + - isActivitySender: + user: microsoft-github-policy-service[bot] then: - enableAutoMerge: mergeMethod: Squash @@ -33,14 +32,11 @@ configuration: label: ':octocat: auto-merge' - targetsBranch: branch: live - - or: - - isActivitySender: - user: microsoft-github-policy-service[bot] + - isActivitySender: + user: microsoft-github-policy-service[bot] then: - enableAutoMerge: mergeMethod: Merge - - approvePullRequest: - comment: "Approved; this PR will merge when all status checks pass." - description: Don't auto-merge PRs with 'auto-merge' label removed if: diff --git a/.github/policies/scheduled-prod-sync.yml b/.github/policies/scheduled-prod-sync.yml index d01d1ff..58015d5 100644 --- a/.github/policies/scheduled-prod-sync.yml +++ b/.github/policies/scheduled-prod-sync.yml @@ -6,18 +6,38 @@ where: configuration: resourceManagementConfiguration: scheduledSearches: - - description: Push to main (scheduled sync) + - description: Push to live branch (scheduled 11AM PT publish) frequencies: - daily: - time: 1:00 + time: 18:00 + filters: [] + actions: + - createPullRequest: + head: main + base: live + title: Merge main into live + body: Automated merge of the main branch into live. + + - description: Push to live branch (scheduled 7PM PT publish) + frequencies: - daily: - time: 9:00 + time: 2:00 + filters: [] + actions: + - createPullRequest: + head: main + base: live + title: Merge main into live + body: Automated merge of the main branch into live. + + - description: Push to live branch (scheduled 3AM PT publish) + frequencies: - daily: - time: 17:00 + time: 10:00 filters: [] actions: - createPullRequest: head: main base: live title: Merge main into live - body: Please don't squash-merge this PR. \ No newline at end of file + body: Automated merge of the main branch into live. diff --git a/.github/policies/scheduled-stage-sync.yml b/.github/policies/scheduled-stage-sync.yml new file mode 100644 index 0000000..0ab4a18 --- /dev/null +++ b/.github/policies/scheduled-stage-sync.yml @@ -0,0 +1,43 @@ +name: GitOps.PullRequestIssueManagement - Scheduled PRs +description: Creates pull requests on a schedule +resource: repository + +where: +configuration: + resourceManagementConfiguration: + scheduledSearches: + - description: Push to main branch (scheduled 10AM PT publish) + frequencies: + - daily: + time: 17:00 + filters: [] + actions: + - createPullRequest: + head: smoke-test + base: main + title: Merge smoke-test into main + body: Automated merge of the smoke-test branch into main. + + - description: Push to main branch (scheduled 6PM PT publish) + frequencies: + - daily: + time: 1:00 + filters: [] + actions: + - createPullRequest: + head: smoke-test + base: main + title: Merge smoke-test into main + body: Automated merge of the smoke-test branch into main. + + - description: Push to main branch (scheduled 2AM PT publish) + frequencies: + - daily: + time: 9:00 + filters: [] + actions: + - createPullRequest: + head: smoke-test + base: main + title: Merge smoke-test into main + body: Automated merge of the smoke-test branch into main. diff --git a/.github/policies/scheduled-sync.yml b/.github/policies/scheduled-sync.yml deleted file mode 100644 index 246b1d5..0000000 --- a/.github/policies/scheduled-sync.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: GitOps.PullRequestIssueManagement - Scheduled PRs -description: Creates pull requests on a schedule -resource: repository - -where: -configuration: - resourceManagementConfiguration: - scheduledSearches: - - description: Push to main (scheduled sync) - frequencies: - - daily: - time: 1:00 - - daily: - time: 9:00 - - daily: - time: 17:00 - filters: [] - actions: - - createPullRequest: - head: smoke-test - base: main - title: Merge smoke-test into main - body: Please don't squash-merge this PR. \ No newline at end of file diff --git a/.github/policies/tag-automatic-pr.yml b/.github/policies/tag-automatic-pr.yml new file mode 100644 index 0000000..d1be251 --- /dev/null +++ b/.github/policies/tag-automatic-pr.yml @@ -0,0 +1,39 @@ +id: +name: GitOps.PullRequestIssueManagement +description: GitOps.PullRequestIssueManagement primitive +owner: +resource: repository +disabled: false +where: +configuration: + resourceManagementConfiguration: + eventResponderTasks: + - description: Sync API docs to staging + triggerOnOwnActions: true + if: + - payloadType: Pull_Request + - isAction: + action: Opened + - isActivitySender: + user: microsoft-github-policy-service[bot] + - titleContains: + pattern: Merge smoke-test into main + isRegex: False + then: + - addLabel: + label: ':octocat: auto-merge' + + - description: Sync staging to production + triggerOnOwnActions: true + if: + - payloadType: Pull_Request + - isAction: + action: Opened + - isActivitySender: + user: microsoft-github-policy-service[bot] + - titleContains: + pattern: Merge main into live + isRegex: False + then: + - addLabel: + label: ':octocat: auto-merge' \ No newline at end of file diff --git a/.github/workflows/linkvalidator.yml b/.github/workflows/linkvalidator.yml index f0cbc2a..a14a430 100644 --- a/.github/workflows/linkvalidator.yml +++ b/.github/workflows/linkvalidator.yml @@ -9,6 +9,9 @@ on: jobs: linkChecker: + permissions: + contents: write + issues: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -19,7 +22,7 @@ jobs: env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} with: - args: --verbose --exclude-file .lycheeignore --no-progress './**/*.md' --exclude-mail + args: --accept=200,429,403,502,503 --verbose --no-progress './**/*.md' fail: true - name: Create Issue From File diff --git a/.lycheeignore b/.lycheeignore index 75a0f86..1bde070 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -1,6 +1,8 @@ https://aka.ms/msal/estsr/guidance -xref:.+ +xref:.* https://go.microsoft.com/fwlink/\?linkid=2083908 -https://endpoint.microsoft.com.+ -https://portal.azure.com.+ -https://account.microsoft.com.+ +https://endpoint.microsoft.com.* +https://portal.azure.com.* +https://account.microsoft.com.* +https://azure.microsoft.com/overview/azure-stack.* +https://azure.microsoft.com/products/kubernetes-service.* \ No newline at end of file diff --git a/README.md b/README.md index e5d80c5..5351b92 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,27 @@ -# Microsoft Authentication Library (MSAL) for Python Documentation +# Microsoft Authentication Library (MSAL) for Python [![Validate existing links](https://github.com/MicrosoftDocs/microsoft-authentication-library-for-python/actions/workflows/linkvalidator.yml/badge.svg)](https://github.com/MicrosoftDocs/microsoft-authentication-library-for-python/actions/workflows/linkvalidator.yml) -This is the documentation repository for Microsoft Authentication Library (MSAL) for Python. If you are looking for the library, refer to [AzureAD/microsoft-authentication-library-for-python](https://github.com/AzureAD/microsoft-authentication-library-for-python). +This is the **documentation repository** for Microsoft Authentication Library (MSAL) for Python. + +| Resource | Location | +|:-----------------------------|:-----------| +| ✅ **SDK Repository** | [`AzureAD/microsoft-authentication-library-for-python`](https://github.com/AzureAD/microsoft-authentication-library-for-python) | +| ✅ **SDK Package** | [`msal`](https://pypi.org/project/msal/) | +| ✅ **SDK Documentation** | [MSAL for Python on Microsoft Learn](https://learn.microsoft.com/entra/msal/python/) | +| 🔒 **SDK Documentation CI Job** | [Azure Pipelines](https://apidrop.visualstudio.com/Content%20CI/_build?definitionId=6169) | ## Contributions Contributions to our documentation are welcome. Make sure to familiarize yourself with the [Microsoft Writing Style Guide](https://learn.microsoft.com/style-guide/welcome/) and the [Contributor Guide](https://learn.microsoft.com/contribute/) before making any changes. -> **Warning** -> **Do not** modify any YML files in the `python/docs-ref-autogen` folder - those are generated automatically from the library source code and any changes will be automatically overwritten the next time the documentation Continuous Integration (CI) job runs. To make changes to any API docs you will need to open a pull request in the [AzureAD/microsoft-authentication-library-for-python](https://github.com/AzureAD/microsoft-authentication-library-for-python) repository. - -If you would like to author an entirely new document (e.g., for a new scenario), make sure to [open an issue](https://github.com/MicrosoftDocs/microsoft-authentication-library-for-python/issues) first. This will allow the engineering team to discuss the proposed changes and ensure that it won't be overwritten by future changes. +If you would like to author an entirely new document (e.g., for a new scenario), make sure to [open an issue](https://github.com/AzureAD/microsoft-authentication-library-for-python/issues) first. This will allow the engineering team to discuss the proposed changes and ensure that it won't be overwritten by future changes. -## API reference documentation automation +## API Documentation -Continuous Integration (CI) jobs for this repository are available in the [automation Azure DevOps instance](https://apidrop.visualstudio.com/Content%20CI/_build?definitionId=6169). +**Do not** modify any XML files in the `python/docs-ref-autogen` folder - those are generated automatically from the library source code and any changes will be automatically overwritten the next time the documentation runs. ->**Note** ->The changes from the CI job will always be pushed to the `smoke-test` branch first. To propagate them to production, merge the changes into `main`, and then merge `main` to `live`. Ensure that all checks pass before merging changes. +To make changes to any API docs you will need to open a pull request in the [`AzureAD/microsoft-authentication-library-for-python`](https://github.com/AzureAD/microsoft-authentication-library-for-python) repository and amend code comments. ## Microsoft Open Source Code of Conduct