microsoft_kiota_authentication_oauth 0.2.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fd7cb0497d32fb8c7a4c12ce048b83b3b36074b0d41b1ed66e09f6b014e20b7
4
- data.tar.gz: aee36c10d884a8ee0a21ab7c39fe2d9ea83f2d7ae27f42de3399b19982fdef69
3
+ metadata.gz: 1527ce960c8fd9e79baa76159ad270a878c49c2bb9d09975cdafc360d4d8cda0
4
+ data.tar.gz: 930b0578b7ab8a9889b48cc511e2e450b6cfcc4eca61c38c294fab741a91baa1
5
5
  SHA512:
6
- metadata.gz: 49ede4420390619f15304c914186bbe5f3c30808a3fe067fbcf3cd41e865181f1f5bf9e6f091781b0ec2a02093288cad6b7c54f00a1eebf711849ea18f5d18fa
7
- data.tar.gz: 6663035128fb452ce6057ace1068831c1d334b4a2e05e0efe866390b83281f9eec3d4cc8250279f3fee3480bfbe054f79ee522a76eb1f0d1bc06bc34ed9bbe9e
6
+ metadata.gz: 6a2b94d7d00cf56c082585a1280a2fe2e13c2079f6706ff06509e5f23d106112c536a7536f15fba5d0bd515efad375bb5c224f75d37303b68ec8de99066eba14
7
+ data.tar.gz: 2d34b6075c37108cb3fbf008e7447678513f7f2bea644911efaa36cfd1fb763c4f119e76d5a4be39d13afdfed3ba0928164b3216f0fd49af748713a8f0191acd
@@ -0,0 +1 @@
1
+ * @andrueastman @baywet @darrelmiller @zengin @MichaelMainer @ddyett @peombwa @nikithauc @ramsessanchez @calebkiage @Ndiritu @rkodev @gavinbarron
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
8
+ - package-ecosystem: bundler
9
+ directory: "/"
10
+ schedule:
11
+ interval: daily
12
+ open-pull-requests-limit: 10
@@ -0,0 +1,76 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ "master", main ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ "master" ]
20
+ schedule:
21
+ - cron: '41 2 * * 0'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Use only 'java' to analyze code written in Java, Kotlin or both
38
+ # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
39
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
40
+
41
+ steps:
42
+ - name: Checkout repository
43
+ uses: actions/checkout@v3
44
+
45
+ # Initializes the CodeQL tools for scanning.
46
+ - name: Initialize CodeQL
47
+ uses: github/codeql-action/init@v2
48
+ with:
49
+ languages: ${{ matrix.language }}
50
+ # If you wish to specify custom queries, you can do so here or in a config file.
51
+ # By default, queries listed here will override any specified in a config file.
52
+ # Prefix the list here with "+" to use these queries and those in the config file.
53
+
54
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
55
+ # queries: security-extended,security-and-quality
56
+
57
+
58
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
59
+ # If this step fails, then you should remove it and run the build manually (see below)
60
+ - name: Autobuild
61
+ uses: github/codeql-action/autobuild@v2
62
+
63
+ # ℹ️ Command-line programs to run using the OS shell.
64
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
65
+
66
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
67
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
68
+
69
+ # - run: |
70
+ # echo "Run, Build Application using script"
71
+ # ./location_of_script_within_repo/buildscript.sh
72
+
73
+ - name: Perform CodeQL Analysis
74
+ uses: github/codeql-action/analyze@v2
75
+ with:
76
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,34 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+
3
+ name: PullRequestConflicting
4
+
5
+ # Controls when the action will run. Triggers the workflow on push or pull request
6
+ # events but only for the master branch
7
+ on:
8
+ push:
9
+ branches: [ main ]
10
+ pull_request:
11
+ types: [synchronize]
12
+ branches: [ main ]
13
+
14
+ # A workflow run is made up of one or more jobs that can run sequentially or in parallel
15
+ jobs:
16
+ # This workflow contains a single job called "build"
17
+ build:
18
+ # The type of runner that the job will run on
19
+ runs-on: ubuntu-latest
20
+
21
+ # Steps represent a sequence of tasks that will be executed as part of the job
22
+ steps:
23
+ - name: check if prs are dirty
24
+ uses: eps1lon/actions-label-merge-conflict@releases/2.x
25
+ if: env.LABELING_TOKEN != '' && env.LABELING_TOKEN != null
26
+ id: check
27
+ with:
28
+ dirtyLabel: "conflicting"
29
+ repoToken: "${{ secrets.GITHUB_TOKEN }}"
30
+ continueOnMissingPermissions: true
31
+ commentOnDirty: 'This pull request has conflicting changes, the author must resolve the conflicts before this pull request can be merged.'
32
+ commentOnClean: 'Conflicts have been resolved. A maintainer will take a look shortly.'
33
+ env:
34
+ LABELING_TOKEN: ${{secrets.GITHUB_TOKEN }}
@@ -0,0 +1,81 @@
1
+ # This workflow is used to add new issues to GitHub Projects (Beta)
2
+
3
+ name: Add PR to project
4
+ on:
5
+ issues:
6
+ types: [opened]
7
+ jobs:
8
+ track_issue:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Generate token
12
+ id: generate_token
13
+ uses: tibdex/github-app-token@021a2405c7f990db57f5eae5397423dcc554159c
14
+ with:
15
+ app_id: ${{ secrets.GRAPHBOT_APP_ID }}
16
+ private_key: ${{ secrets.GRAPHBOT_APP_PEM }}
17
+
18
+ - name: Get project data
19
+ env:
20
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
21
+ ORGANIZATION: microsoftgraph
22
+ PROJECT_NUMBER: 38
23
+ run: |
24
+ gh api graphql -f query='
25
+ query($org: String!, $number: Int!) {
26
+ organization(login: $org){
27
+ projectNext(number: $number) {
28
+ id
29
+ fields(first:20) {
30
+ nodes {
31
+ id
32
+ name
33
+ settings
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
39
+
40
+ echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
41
+ echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
42
+ echo 'TRIAGE_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Needs Triage 🔍") |.id' project_data.json) >> $GITHUB_ENV
43
+
44
+ - name: Add Issue to project
45
+ env:
46
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
47
+ ISSUE_ID: ${{ github.event.issue.node_id }}
48
+ run: |
49
+ item_id="$( gh api graphql -f query='
50
+ mutation($project:ID!, $issue:ID!) {
51
+ addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
52
+ projectNextItem {
53
+ id
54
+ }
55
+ }
56
+ }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
57
+
58
+ echo 'ITEM_ID='$item_id >> $GITHUB_ENV
59
+
60
+ - name: Set Triage
61
+ env:
62
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
63
+ run: |
64
+ gh api graphql -f query='
65
+ mutation (
66
+ $project: ID!
67
+ $item: ID!
68
+ $status_field: ID!
69
+ $status_value: String!
70
+ ) {
71
+ set_status: updateProjectNextItemField(input: {
72
+ projectId: $project
73
+ itemId: $item
74
+ fieldId: $status_field
75
+ value: $status_value
76
+ }) {
77
+ projectNextItem {
78
+ id
79
+ }
80
+ }
81
+ }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.TRIAGE_OPTION_ID }} --silent
@@ -0,0 +1,45 @@
1
+ name: Git Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v[0-9]+.[0-9]+.[0-9]+"
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ Git_Release:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - name: Github Release
15
+ uses: anton-yurchenko/git-release@v5.0
16
+ env:
17
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN}}
18
+ DRAFT_RELEASE: "false"
19
+ PRE_RELEASE: "false"
20
+ CHANGELOG_FILE: "CHANGELOG.md"
21
+ ALLOW_EMPTY_CHANGELOG: "true"
22
+
23
+ deploy_prod:
24
+ environment:
25
+ name: production_feeds
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - uses: actions/checkout@v3
29
+ - uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: '3.1'
32
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
33
+ bundler: 'latest'
34
+ cache-version: 1
35
+ - run: bundle exec rake
36
+ - name: Publish to RubyGems
37
+ run: |
38
+ mkdir -p $HOME/.gem
39
+ touch $HOME/.gem/credentials
40
+ chmod 0600 $HOME/.gem/credentials
41
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
42
+ gem build *.gemspec
43
+ gem push *.gem
44
+ env:
45
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,34 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ main ]
7
+ pull_request:
8
+
9
+ jobs:
10
+ build:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ ruby-version: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head]
16
+ runs-on: ${{ matrix.os }}
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby-version }}
22
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
23
+ bundler: 'latest'
24
+ cache-version: 1
25
+ - name: Run tests
26
+ run: bundle exec rake
27
+ - name: Upload artifacts for ruby version 3 and ubuntu
28
+ if: ${{ matrix.os == 'ubuntu-latest' && matrix.ruby-version == '3.1'}}
29
+ uses: actions/upload-artifact@v3
30
+ with:
31
+ name: drop
32
+ path: |
33
+ ./Gemfile.lock
34
+ ./README.md
data/.gitignore ADDED
@@ -0,0 +1,58 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ Gemfile.lock
49
+ .ruby-version
50
+ .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
+ # .rubocop-https?--*
57
+
58
+ .rspec_status
data/CHANGELOG.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ ### Changed
13
+
14
+ ## [0.5.0] - 2022-12-30
15
+
16
+ ### Added
17
+
18
+ - Initial public release of the package.
@@ -0,0 +1,9 @@
1
+ # Microsoft Open Source Code of Conduct
2
+
3
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4
+
5
+ Resources:
6
+
7
+ - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8
+ - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9
+ - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in microsoft_kiota_authentication.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # Kiota OAuth authentication provider library for Ruby
2
+
3
+ ![Ruby](https://github.com/microsoft/kiota-authentication-oauth-ruby/actions/workflows/ruby.yml/badge.svg)
4
+
5
+ The Kiota OAuth authentication provider library for Ruby is the authentication provider implementation with [OAuth2](https://rubygems.org/gems/oauth2).
6
+
7
+ A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a authentication provider library to authenticate HTTP requests to an API endpoint.
8
+
9
+ Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).
10
+
11
+ ## Using the OAuth library
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's Gemfile:
16
+
17
+ ```ruby
18
+ gem "microsoft_kiota_authentication_oauth", "0.5.0"
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ ```shell
24
+ bundle install
25
+ ```
26
+
27
+ Or install it yourself as:
28
+
29
+ ```shell
30
+ gem install microsoft_kiota_authentication_oauth --version "0.5.0"
31
+ ```
32
+
33
+ ## Contributing
34
+
35
+ This project welcomes contributions and suggestions. Most contributions require you to agree to a
36
+ Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
37
+ the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
38
+
39
+ When you submit a pull request, a CLA bot will automatically determine whether you need to provide
40
+ a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
41
+ provided by the bot. You will only need to do this once across all repos using our CLA.
42
+
43
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
44
+ For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
45
+ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
46
+
47
+ ## Trademarks
48
+
49
+ This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
50
+ trademarks or logos is subject to and must follow
51
+ [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
52
+ Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
53
+ Any use of third-party trademarks or logos are subject to those third-party's policies.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ task default: :spec
data/SECURITY.md ADDED
@@ -0,0 +1,41 @@
1
+ <!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->
2
+
3
+ ## Security
4
+
5
+ Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6
+
7
+ If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
8
+
9
+ ## Reporting Security Issues
10
+
11
+ **Please do not report security vulnerabilities through public GitHub issues.**
12
+
13
+ Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
14
+
15
+ If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
16
+
17
+ You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
18
+
19
+ Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20
+
21
+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22
+ * Full paths of source file(s) related to the manifestation of the issue
23
+ * The location of the affected source code (tag/branch/commit or direct URL)
24
+ * Any special configuration required to reproduce the issue
25
+ * Step-by-step instructions to reproduce the issue
26
+ * Proof-of-concept or exploit code (if possible)
27
+ * Impact of the issue, including how an attacker might exploit the issue
28
+
29
+ This information will help us triage your report more quickly.
30
+
31
+ If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
32
+
33
+ ## Preferred Languages
34
+
35
+ We prefer all communications to be in English.
36
+
37
+ ## Policy
38
+
39
+ Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
40
+
41
+ <!-- END MICROSOFT SECURITY.MD BLOCK -->
data/SUPPORT.md ADDED
@@ -0,0 +1,25 @@
1
+ # TODO: The maintainer of this repo has not yet edited this file
2
+
3
+ **REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
4
+
5
+ - **No CSS support:** Fill out this template with information about how to file issues and get help.
6
+ - **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps.
7
+ - **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide.
8
+
9
+ *Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
10
+
11
+ # Support
12
+
13
+ ## How to file issues and get help
14
+
15
+ This project uses GitHub Issues to track bugs and feature requests. Please search the existing
16
+ issues before filing new issues to avoid duplicates. For new issues, file your bug or
17
+ feature request as a new Issue.
18
+
19
+ For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
20
+ FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
21
+ CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
22
+
23
+ ## Microsoft Support Policy
24
+
25
+ Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the authorization code grant type.
8
+ class AuthorizationCodeContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :redirect_uri, :additional_params,
10
+ :tenant_id, :client_id, :client_secret, :auth_code, :oauth_provider
11
+ attr_writer :scopes
12
+
13
+ # This is the initializer for AuthorizationCodeContext, the token request context when
14
+ # using the authorization code grant flow.
15
+ # :params
16
+ # tenant_id: a string containing the tenant id
17
+ # client_id: a string containing the client id
18
+ # client_secret: a string containing the client secret
19
+ # redirect_uri: a string containing redirect_uri
20
+ # auth_code: a string containting the auth code; default is nil, can be updated post-initialization
21
+ def initialize(tenant_id, client_id, client_secret, redirect_uri, auth_code = nil)
22
+ raise StandardError, 'redirect_uri cannot be nil/empty' if redirect_uri.nil? || redirect_uri.empty?
23
+
24
+ @tenant_id = tenant_id
25
+ @client_id = client_id
26
+ @client_secret = client_secret
27
+ @auth_code = auth_code
28
+ @redirect_uri = redirect_uri
29
+ @scopes = nil
30
+ @oauth_provider = nil
31
+ @grant_type = 'authorization code'
32
+
33
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @tenant_id.empty? || @client_id.empty? || @client_secret.empty?
34
+ raise StandardError, 'tenant_id, client_id, and client_secret cannot be empty'
35
+ end
36
+ end
37
+
38
+ # setter for auth_code
39
+ def auth_code=(code)
40
+ raise StandardError, 'auth_code cannot be empty/nil.' if code.nil? || code.empty?
41
+
42
+ @auth_code = code
43
+ end
44
+
45
+ # This function generates an authorize URL for obtaining the auth code.
46
+ # :params
47
+ # scopes: an array of stings, where each string is a scope
48
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
49
+ # default is empty hash
50
+ def generate_authorize_url(scopes, additional_params = {})
51
+ @additional_params = additional_params
52
+
53
+ self.initialize_scopes(scopes)
54
+ self.initialize_oauth_provider
55
+
56
+ parameters = { scope: @scopes, redirect_uri: @redirect_uri, access_type: 'offline', prompt: 'consent'}
57
+ parameters = parameters.merge(additional_params)
58
+ @oauth_provider.auth_code.authorize_url(parameters)
59
+ end
60
+
61
+ def get_token
62
+ @oauth_provider.auth_code.get_token(@auth_code, redirect_uri: @redirect_uri)
63
+ end
64
+
65
+ def initialize_oauth_provider
66
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
67
+ site: 'https://login.microsoftonline.com',
68
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
69
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
70
+ end
71
+
72
+ def initialize_scopes(scopes)
73
+ scope_str = ''
74
+ scopes.each { |scope| scope_str += scope + ' '}
75
+ raise StandardError, 'scopes cannot be empty/nil.' if scope_str.empty?
76
+
77
+ scope_str = 'offline_access ' + scope_str
78
+
79
+ @scopes = scope_str
80
+ end
81
+
82
+ private
83
+
84
+ attr_writer :grant_type, :redirect_uri, :additional_params,
85
+ :tenant_id, :client_id, :client_secret, :oauth_provider
86
+ end
87
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the client credential grant type.
8
+ class ClientCredentialContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
10
+ attr_writer :scopes
11
+
12
+ # This is the initializer for ClientCredentialContext, the token request context when
13
+ # using the client credential grant flow.
14
+ # :params
15
+ # tenant_id: a string containing the tenant id
16
+ # client_id: a string containing the client id
17
+ # client_secret: a string containing the client secret
18
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
19
+ # default is empty hash
20
+ def initialize(tenant_id, client_id, client_secret, additional_params = {})
21
+ @tenant_id = tenant_id
22
+ @client_id = client_id
23
+ @client_secret = client_secret
24
+ @additional_params = additional_params
25
+ @scopes = nil
26
+ @oauth_provider = nil
27
+ @grant_type = 'client credential'
28
+
29
+
30
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @tenant_id.empty? || @client_id.empty? || @client_secret.empty?
31
+ raise StandardError, 'tenant_id, client_id and client_secret cannot be empty'
32
+ end
33
+ end
34
+
35
+ def get_token
36
+ @oauth_provider.client_credentials.get_token({ scope: @scopes })
37
+ end
38
+
39
+ def initialize_oauth_provider
40
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
41
+ site: 'https://login.microsoftonline.com',
42
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
43
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
44
+ end
45
+
46
+ # Function to initialize the scope for the client credential context object.
47
+ # This function forces to default since gradual consent is not supported
48
+ # for this flow.
49
+ def initialize_scopes(scopes = [])
50
+ scope_str = 'https://graph.microsoft.com/.default'
51
+ @scopes = scope_str
52
+ end
53
+
54
+
55
+ private
56
+
57
+ attr_writer :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
58
+ end
59
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_custom_flow'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Base class for token request contexs.
8
+ class OAuthContext
9
+ attr_accessor :scopes
10
+ attr_reader :oauth_provider
11
+ include MicrosoftKiotaAuthenticationOAuth::OAuthCustomFlow
12
+
13
+ def get_token
14
+ OAuthCustomFlow.get_token
15
+ end
16
+
17
+ def initialize_scopes(scopes = [])
18
+ @scopes = OAuthCustomFlow.get_scopes
19
+ end
20
+
21
+ def initialize_oauth_provider
22
+ @oauth_provider = OAuthCustomFlow.get_oauth_provider
23
+ end
24
+
25
+ private
26
+
27
+ attr_writer :oauth_provider
28
+
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+
5
+ module MicrosoftKiotaAuthenticationOAuth
6
+ # Module that can be optionally implemented for supporting custom token grant flows.
7
+ # To use a cutsom token grant flow, implement the functions below and
8
+ # use MicrosoftKiotaAuthenticationOAuth::OAuthContext.new as your token_request_context
9
+ # object for the use by the MicrosoftKiotaAuthenticationOAuth::OAuthAccessTokenProvider
10
+ module OAuthCustomFlow
11
+ # Function that returns an oauth client using the oauth2 gem
12
+ def self.get_oauth_provider
13
+ raise NotImplementedError.new
14
+ end
15
+
16
+ # Function that returns a space seperated string of scopes, beginning with
17
+ # the offline_access scope if relevant
18
+ def self.get_scopes
19
+ raise NotImplementedError.new
20
+ end
21
+
22
+ # Function that returns the access token
23
+ def self.get_token
24
+ raise NotImplementedError.new
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the on behlaf of grant type.
8
+ class OnBehalfOfContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
10
+ attr_writer :scopes
11
+
12
+ # This is the initializer for OnBehalfOfContext, the token request context when
13
+ # using the client credential grant flow.
14
+ # :params
15
+ # tenant_id: a string containing the tenant id
16
+ # client_id: a string containing the client id
17
+ # client_secret: a string containing the client secret
18
+ # assertion: string containing assertion (access token used in the request)
19
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
20
+ # default is empty hash
21
+ def initialize(tenant_id, client_id, client_secret, assertion, additional_params = {})
22
+ raise StandardError, 'assertion cannot be empty' if assertion.nil? || assertion.empty?
23
+
24
+ @tenant_id = tenant_id
25
+ @client_id = client_id
26
+ @client_secret = client_secret
27
+ @assertion = assertion
28
+ @additional_params = additional_params
29
+ @scopes = nil
30
+ @oauth_provider = nil
31
+ @grant_type = 'urn:ietf:params:Oauth:grant-type:jwt-bearer'
32
+
33
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @client_secret.empty? || @tenant_id.empty? || @client_id.empty?
34
+ raise StandardError, 'tenant_id, client_secret, and client_id cannot be empty'
35
+ end
36
+ end
37
+
38
+ def get_token
39
+ params = {
40
+ grant_type: @grant_type,
41
+ assertion: @assertion,
42
+ scope: @scopes,
43
+ requested_token_use: 'on_behalf_of'
44
+ }
45
+ @oauth_provider.on_behalf_of.get_token(params)
46
+ end
47
+
48
+ def initialize_oauth_provider
49
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
50
+ site: 'https://login.microsoftonline.com',
51
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
52
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
53
+ end
54
+
55
+ def initialize_scopes(scopes)
56
+ scope_str = ''
57
+ scopes.each { |scope| scope_str += scope + ' '}
58
+
59
+ raise StandardError, 'scopes cannot be empty/nil.' if scope_str.empty?
60
+
61
+ scope_str = 'offline_access ' + scope_str
62
+
63
+ @scopes = scope_str
64
+ end
65
+
66
+ private
67
+
68
+ attr_writer :grant_type, :additional_params, :tenant_id, :client_id,
69
+ :client_secret, :oauth_provider
70
+
71
+ end
72
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+
5
+ # Extension of Oauth2 Library to Include On Behalf Of Grant Type
6
+ module OAuth2
7
+ module Strategy
8
+ class OnBehalfOf < Base
9
+ def get_token(params, response_opts = {})
10
+ @client.get_token(params, response_opts)
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ module OAuth2
17
+ class Client
18
+ def on_behalf_of
19
+ @on_behalf_of ||= OAuth2::Strategy::OnBehalfOf.new(self)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'microsoft_kiota_abstractions'
4
+ require 'oauth2'
5
+ require_relative 'extensions/oauth2_ext'
6
+ require_relative 'contexts/client_credential_context'
7
+ require_relative 'contexts/authorization_code_context'
8
+ require_relative 'contexts/on_behalf_of_context'
9
+ require_relative 'contexts/oauth_context'
10
+ require_relative 'contexts/oauth_custom_flow'
11
+
12
+ module MicrosoftKiotaAuthenticationOAuth
13
+ # Access Token Provider class implementation
14
+ class OAuthAccessTokenProvider
15
+ # This is the initializer for OAuthAccessTokenProvider.
16
+ # :params
17
+ # token_request_context: a instance of one of our token request context or a custom implementation
18
+ # allowed_hosts: an array of strings, where each string is an allowed host, default is empty
19
+ # scopes: an array of strings, where each string is a scope, default is empty array
20
+ def initialize(token_request_context, allowed_hosts = [], scopes = [])
21
+ raise StandardError, 'Parameter token_request_context cannot be nil.' if token_request_context.nil?
22
+
23
+ @token_request_context = token_request_context
24
+
25
+ unless @token_request_context.is_a?(MicrosoftKiotaAuthenticationOAuth::OAuthContext)
26
+ raise StandardError, 'Parameter token_request_context must be an instance of one of our grant flow context classes.'
27
+ end
28
+
29
+ @cached_token = nil
30
+
31
+ @host_validator = if allowed_hosts.nil? || allowed_hosts.size.zero?
32
+ MicrsoftKiotaAbstractions::AllowedHostsValidator.new(['graph.microsoft.com', 'graph.microsoft.us', 'dod-graph.microsoft.us',
33
+ 'graph.microsoft.de', 'microsoftgraph.chinacloudapi.cn',
34
+ 'canary.graph.microsoft.com'])
35
+ else
36
+ MicrosoftKiotaAbstractions::AllowedHostsValidator.new(allowed_hosts)
37
+ end
38
+ @token_request_context.initialize_oauth_provider
39
+ @token_request_context.initialize_scopes(scopes)
40
+ end
41
+
42
+ # This function obtains the authorization token.
43
+ # :params
44
+ # uri: a string containing the uri
45
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
46
+ # default is empty hash
47
+ def get_authorization_token(uri, additional_properties = {})
48
+ return nil if !uri || !@host_validator.url_host_valid?(uri)
49
+
50
+ parsed_url = URI(uri)
51
+
52
+ raise StandardError, 'Only https is supported' if parsed_url.scheme != 'https'
53
+
54
+ Fiber.new do
55
+ if @cached_token
56
+ token = OAuth2::AccessToken.from_hash(@token_request_context.oauth_provider, @cached_token)
57
+ return token.token if !token.nil? && !token.expired?
58
+
59
+ if token.expired?
60
+ token = token.refresh!
61
+ @cached_token = token.to_hash
62
+ return token.token
63
+ end
64
+ end
65
+
66
+ token = nil
67
+ token = @token_request_context.get_token
68
+
69
+ @cached_token = token.to_hash unless token.nil?
70
+ return token.token unless token.nil?
71
+ end
72
+ end
73
+
74
+ attr_reader :scopes, :host_validator
75
+
76
+ protected
77
+
78
+ attr_writer :host_validator, :token_credential, :scopes, :cached_token
79
+
80
+ end
81
+ end
@@ -0,0 +1,10 @@
1
+ require 'microsoft_kiota_abstractions'
2
+ require_relative './oauth_access_token_provider'
3
+
4
+ module MicrosoftKiotaAuthenticationOAuth
5
+ class OAuthAuthenticationProvider < MicrosoftKiotaAbstractions::BaseBearerTokenAuthenticationProvider
6
+ def initialize(token_request_context, allowed_hosts, scopes)
7
+ super(MicrosoftKiotaAuthenticationOAuth::OAuthAccessTokenProvider.new(token_request_context, allowed_hosts, scopes))
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MicrosoftKiotaAuthenticationOAuth
4
+ VERSION = "0.5.0"
5
+ end
@@ -1,5 +1,14 @@
1
- class Hola
2
- def self.hi
3
- puts "Asm0d3us-PoC"
4
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "microsoft_kiota_authentication_oauth/version"
4
+ require_relative "microsoft_kiota_authentication_oauth/contexts/authorization_code_context"
5
+ require_relative "microsoft_kiota_authentication_oauth/contexts/client_credential_context"
6
+ require_relative "microsoft_kiota_authentication_oauth/contexts/on_behalf_of_context"
7
+ require_relative "microsoft_kiota_authentication_oauth/contexts/oauth_context"
8
+ require_relative "microsoft_kiota_authentication_oauth/contexts/oauth_custom_flow"
9
+ require_relative "microsoft_kiota_authentication_oauth/extensions/oauth2_ext"
10
+ require_relative "microsoft_kiota_authentication_oauth/oauth_access_token_provider"
11
+ require_relative "microsoft_kiota_authentication_oauth/oauth_authentication_provider"
12
+
13
+ module MicrosoftKiotaAuthenticationOAuth
5
14
  end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/microsoft_kiota_authentication_oauth/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "microsoft_kiota_authentication_oauth"
7
+ spec.version = MicrosoftKiotaAuthenticationOAuth::VERSION
8
+ spec.authors = 'Microsoft Corporation'
9
+ spec.email = 'graphsdkpub@microsoft.com'
10
+ spec.description = 'Kiota Authentication implementation with oauth2'
11
+ spec.summary = 'Microsoft Kiota Authentication OAuth - Kiota Ruby Authentication OAuth library'
12
+ spec.homepage = 'https://microsoft.github.io/kiota/'
13
+ spec.license = 'MIT'
14
+ spec.metadata = {
15
+ 'bug_tracker_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby/issues',
16
+ 'changelog_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby/blob/main/CHANGELOG.md',
17
+ 'homepage_uri' => spec.homepage,
18
+ 'source_code_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby',
19
+ 'github_repo' => 'ssh://github.com/microsoft/kiota-authentication-oauth-ruby'
20
+ }
21
+ spec.required_ruby_version = ">= 2.7.0"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
27
+ end
28
+
29
+ spec.bindir = 'bin'
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ['lib']
32
+
33
+ spec.add_runtime_dependency 'microsoft_kiota_abstractions', '~> 0.12.0', '>= 0.12.0'
34
+ spec.add_runtime_dependency 'oauth2', '~> 2.0'
35
+ spec.add_development_dependency 'rake', '~> 13.0'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ spec.add_development_dependency 'rubocop'
38
+ end
metadata CHANGED
@@ -1,26 +1,133 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microsoft_kiota_authentication_oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
- - Devansh Batham
7
+ - Microsoft Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-29 00:00:00.000000000 Z
12
- dependencies: []
13
- description: A simple hello world gem
14
- email: asm0d3us@devansh.xyz
11
+ date: 2023-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: microsoft_kiota_abstractions
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.12.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.12.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.12.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.12.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: oauth2
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '13.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '13.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ description: Kiota Authentication implementation with oauth2
90
+ email: graphsdkpub@microsoft.com
15
91
  executables: []
16
92
  extensions: []
17
93
  extra_rdoc_files: []
18
94
  files:
95
+ - ".github/CODEOWNERS"
96
+ - ".github/dependabot.yml"
97
+ - ".github/workflows/code-ql.yml"
98
+ - ".github/workflows/conflicting-pr-label.yml"
99
+ - ".github/workflows/projectsbot.yml"
100
+ - ".github/workflows/release.yml"
101
+ - ".github/workflows/ruby.yml"
102
+ - ".gitignore"
103
+ - CHANGELOG.md
104
+ - CODE_OF_CONDUCT.md
105
+ - Gemfile
106
+ - LICENSE
107
+ - README.md
108
+ - Rakefile
109
+ - SECURITY.md
110
+ - SUPPORT.md
19
111
  - lib/microsoft_kiota_authentication_oauth.rb
20
- homepage: https://rubygems.org/gems/microsoft_kiota_authentication_oauth
112
+ - lib/microsoft_kiota_authentication_oauth/contexts/authorization_code_context.rb
113
+ - lib/microsoft_kiota_authentication_oauth/contexts/client_credential_context.rb
114
+ - lib/microsoft_kiota_authentication_oauth/contexts/oauth_context.rb
115
+ - lib/microsoft_kiota_authentication_oauth/contexts/oauth_custom_flow.rb
116
+ - lib/microsoft_kiota_authentication_oauth/contexts/on_behalf_of_context.rb
117
+ - lib/microsoft_kiota_authentication_oauth/extensions/oauth2_ext.rb
118
+ - lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb
119
+ - lib/microsoft_kiota_authentication_oauth/oauth_authentication_provider.rb
120
+ - lib/microsoft_kiota_authentication_oauth/version.rb
121
+ - microsoft_kiota_authentication_oauth.gemspec
122
+ homepage: https://microsoft.github.io/kiota/
21
123
  licenses:
22
124
  - MIT
23
- metadata: {}
125
+ metadata:
126
+ bug_tracker_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby/issues
127
+ changelog_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby/blob/main/CHANGELOG.md
128
+ homepage_uri: https://microsoft.github.io/kiota/
129
+ source_code_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby
130
+ github_repo: ssh://github.com/microsoft/kiota-authentication-oauth-ruby
24
131
  post_install_message:
25
132
  rdoc_options: []
26
133
  require_paths:
@@ -29,15 +136,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
29
136
  requirements:
30
137
  - - ">="
31
138
  - !ruby/object:Gem::Version
32
- version: '0'
139
+ version: 2.7.0
33
140
  required_rubygems_version: !ruby/object:Gem::Requirement
34
141
  requirements:
35
142
  - - ">="
36
143
  - !ruby/object:Gem::Version
37
144
  version: '0'
38
145
  requirements: []
39
- rubygems_version: 3.3.5
146
+ rubygems_version: 3.3.26
40
147
  signing_key:
41
148
  specification_version: 4
42
- summary: Hola!
149
+ summary: Microsoft Kiota Authentication OAuth - Kiota Ruby Authentication OAuth library
43
150
  test_files: []