ForNeVeR / ForNeVeR/Generaptor

Support optional tokens via GH_TOKEN env var

Open
#128 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
F#
Stars
50
Forks
2
PR merge metrics
No merged PRs in 30d

Description

This should work:
```powershell
$env:GH_TOKEN = gh auth token
dotnet fsi .\scripts\github-actions.fsx generate
```

Currently it might break due to the API usage limits:
```
Generating workflow infra…
Octokit.RateLimitExceededException: API rate limit exceeded for 82.169.229.246. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
at Octokit.Connection.HandleErrors(IResponse response) in /_/Octokit/Http/Connection.cs:line 817
at Octokit.Connection.RunRequest(IRequest request, CancellationToken cancellationToken, Func`2 preprocessResponseBody) in /_/Octokit/Http/Connection.cs:line 798
at Octokit.Connection.Run[T](IRequest request, CancellationToken cancellationToken, Func`2 preprocessResponseBody) in /_/Octokit/Http/Connection.cs:line 783
at Octokit.ApiConnection.GetPage[TU](Uri uri, IDictionary`2 parameters, String accepts, ApiOptions options, Func`2 preprocessResponseBody) in /_/Octokit/Http/ApiConnection.cs:line 712
at Octokit.ApiConnection.<>c__DisplayClass20_0`1.<b__0>d.MoveNext() in /_/Octokit/Http/ApiConnection.cs:line 240
--- End of stack trace from previous location ---
at Octokit.ApiPagination.GetAllPages[T](Func`1 getFirstPage, Uri uri) in /_/Octokit/Clients/ApiPagination.cs:line 23
at .$ActionsClient.Generaptor-IActionsClient-GetLastActionVersion@67.MoveNext()
at Generaptor.Serializers.getActionUsesSpec@59.MoveNext()
at Generaptor.Serializers.getActionUsesSpec(FSharpMap`2 existingVersions, IActionsClient client, ActionSpec _arg1)
at Generaptor.Serializers.convertSteps@70.Invoke(Step step)
at Microsoft.FSharp.Collections.Internal.IEnumerator.map@128.DoMoveNext(b& curr) in D:\a\_work\1\s\src\fsharp\src\FSharp.Core\seq.fs:line 131
at Microsoft.FSharp.Collections.Internal.IEnumerator.MapEnumerator`1.System.Collections.IEnumerator.MoveNext() in D:\a\_work\1\s\src\fsharp\src\FSharp.Core\seq.fs:line 113
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IPropertyDescriptor propertyDescriptor, Object name, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseDictionary[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor dictionary, IObjectGraphVisitor`1 visitor, Type keyType, Type valueType, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IPropertyDescriptor propertyDescriptor, Object name, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseDictionary[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor dictionary, IObjectGraphVisitor`1 visitor, Type keyType, Type valueType, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IPropertyDescriptor propertyDescriptor, Object name, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseDictionary[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor dictionary, IObjectGraphVisitor`1 visitor, Type keyType, Type valueType, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IPropertyDescriptor propertyDescriptor, Object name, IObjectDescriptor value, IObjectGraphVisitor`1 visitor, TContext context, Stack`1 path, ObjectSerializer serializer)
at YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.YamlDotNet.Serialization.IObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor graph, IObjectGraphVisitor`1 visitor, TContext context, ObjectSerializer serializer)
at YamlDotNet.Serialization.SerializerBuilder.ValueSerializer.SerializeValue(IEmitter emitter, Object value, Type type)
at YamlDotNet.Serialization.Serializer.EmitDocument(IEmitter emitter, Object graph, Type type)
at YamlDotNet.Serialization.Serializer.Serialize(IEmitter emitter, Object graph)
at YamlDotNet.Serialization.Serializer.Serialize(TextWriter writer, Object graph)
at YamlDotNet.Serialization.Serializer.Serialize(Object graph)
at Generaptor.Serializers.GenerateWorkflowContent@241.MoveNext()
at Generaptor.EntryPoint.generateWorkflows@21.MoveNext()
at Generaptor.EntryPoint.Process(IEnumerable`1 args, IEnumerable`1 workflows)
at .$FSI_0003.main@() in G:\Projects\Todosaurus\scripts\github-actions.fsx:line 520
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
{"message":"API rate limit exceeded for 82.169.229.246. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}

```

If Generaptor sees GH_TOKEN env var, it should use it.

This should be documented.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.