GitHub Actons - url to specific line in logs

Hello, I am new to GitHub Actions. I managed to create my first running workflow with some basic steps but I cannot find a way to create link to specific section in logs.

When I open job log and navigate to specific step named pylint and its first line I get url:
https://github.com/Tony763/skill-homeassistant/runs/3807234008?check_suite_focus=true#step:24:1

Is there a way to get long number in url above as variable inside workflow so I can construct and publish a link to log.

Also is there a way to change step:24:1 to id which i set in workflow?

- name: pylint
      if: always()
      uses: ricardochaves/python-lint@v1.4.0
      id: pylint

Something like this would be perfect:
https://github.com/${GITHUB_REPOSITORY}/runs/${ID}?check_suite_focus=true#step.id:pylint

Thank you

Solved. I had to use GitHub API.

First I run pylint with name and id set.

# Linters - pylint
    - name: pylint
      if: always()
      uses: ricardochaves/python-lint@v1.4.0
      id: pylint
      with:
        use-pylint: true
        use-pycodestyle: false
        use-flake8: false
        use-black: false
        use-mypy: false
        use-isort: false
        extra-pylint-options: ""

With curl I access information from GitHub API and parse them with jq.
Returned JSON contain list of jobs runned in repository and specific run selected by ${GITHUB_RUN_ID.

I loop trough list and check if contained field name is same as wanted by ${GITHUB_JOB}
When found, I store field id in ${{ LOG_ID }} in env and loop trough field steps.
It contain fields name and number which is name of step and it’s position (section) in log. I store them as output of step.

    # Get id for accessing logs
    - name: Get step id for accessing step status logs
      id: linters_status
      if: always()
      run: |
        JOBS=$(curl -H "Accept: application/vnd.github.v3+json" ${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs | jq -r '.jobs')
        for row in $(echo "${JOBS}" | jq -r '.[] | @base64'); do
            _jq() {
              echo "${row}" | base64 --decode | jq -r ${1}
            }
            if [ $(echo "$( _jq '.name')") = "${GITHUB_JOB}" ]; then
              echo "LOG_ID=$(_jq '.id')" >> $GITHUB_ENV
              for step in $(echo "$(_jq '.steps')" | jq -r '.[] | @base64'); do
                _jqs() {
                echo "${step}" | base64 --decode | jq -r ${1}
              }
              echo "::set-output name=$(_jqs '.name')::$(_jqs '.number')"
              echo "$(_jqs '.name'):$(_jqs '.number')"
              done
            fi
        done

With these when setting state I construct target_url as below. ${{ steps.linters_status.outputs."name of step" }}

    # Job status - publish pylint
    - name: State - pylint
      if: always()
      uses: Sibz/github-status-action@v1
      with:
        authToken: ${{ secrets.GITHUB_TOKEN }}
        context: 'pylint'
        state: ${{ steps.pylint.outcome }}
        sha: ${{github.event.pull_request.head.sha || github.sha}}
        target_url: https://github.com/${{ github.repository }}/runs/${{ env.LOG_ID }}#step:${{ steps.linters_status.outputs.pylint }}:1

With this, Details in state of pylint contain direct link to log.